MOOC 翁恺C语言 第五周编程练习2 念整数
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为: fu er san si yi 输入格式: 一个整数,范围是[-100000,100000]。 输出格式: 表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。 输入样例: -30 输出样例: fu san ling 时间限制:500ms内存限制:32000kb
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n, t, i, bit, j, k; scanf("%d",&n); if (n<0){ printf("fu "); n=-n; } t=n; for (i=0;t!=0;i++){ t/=10; }//求位数 t=n; for (;i>0;i--){ for(j=0,k=1;j<i-1;j++){ //注意k每次都要初始化为1 k*=10; } bit = t/k;//每个循环最高位数字 t=t%k; switch (bit){ 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; case 0: printf("ling"); break; } if (i!=1) printf(" "); } return 0; }
不知道为什么测试用例1就是无法通过