#include <stdio.h>
#include <string.h>
char num[10][5] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; // 定义数字的汉语读法
char wei[5][5] = { "", "十", "百", "千" }; // 定义位值的汉语读法
int main() {
char s[20]; // 定义一个字符数组,用来存储输入的整数
scanf_s("%s", s,20); // 读入整数
int len = strlen(s); // 计算整数的位数
for (int i = 0; i < len; i++) { // 遍历整数中的每一位
int n = s[i] - '0'; // 将字符转换为对应的数字
if (n != 0) { // 如果数字不为零
printf("%s%s", num[n], wei[(len - i - 1) % 4]); // 输出该数字的汉语读法和该数字所在位置的位值的汉语读法
if ((len - i - 1) % 8 == 0 && (len - i - 1) > 0) { // 如果该数字所在位置是亿位
printf("亿"); // 输出“亿”
}
if ((len - i - 1) % 4 == 0 && (len - i - 1) > 0 && (len - i - 1) % 8 != 0) { // 如果该数字所在位置是万位但不是亿位
printf("万"); // 输出“万”
}
}
else { // 如果数字为零
if (i != len - 1 && s[i + 1] != '0') { // 判断该数字后面是否还有不为零的数字
printf("零"); // 如果有,则输出“零”
}
if ((len - i - 1) % 8 == 0 && (len - i - 1) > 0) { // 如果该数字所在位置是亿位
printf("亿"); // 输出“亿”
}
if ((len - i - 1) % 4 == 0 && (len - i - 1) > 0 && (len - i - 1) % 8 != 0 ) { // 如果该数字所在位置是万位但不是亿位
printf("万"); // 输出“万”
}
}
}
return 0;
}
输入一个整形数(最多可以到亿位),然后按汉语的习惯,将其读出来并输出。如1052,读作:一千零五十二。输入信息格式:“%s“输出信息格式:“%s“程序运行示例:1052一千零五十二
最新推荐文章于 2024-01-10 16:48:10 发布