你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为: fu er san si yi
int main() { int n; scanf("%d", &n); if (n < 0) { printf("fu "); n = -n; }
//输出10^n int mark = 1; int t = n; while (t > 9){ t /= 10; mark *= 10; } //从左往右分解数字 int digit; while (mark > 0) { digit = n / mark; n %= mark; mark /= 10; //输出数字相对应的拼音 switch (digit) { case 0: printf("ling"); break; case 1: printf("yi"); break; case 2: printf("er"); break; case 3: printf("san"); break; case 4: printf("si"); break; case 5: printf("wu"); break; case 6: printf("liu"); break; case 7: printf("qi"); break; case 8: printf("ba"); break; case 9: printf("jiu"); break; } //当数字不是最后一位时,输出空格 if (mark > 0) { printf(" "); } }