如题,PTA甲级问题 写出这个数 第二个测试点无法通过,没有报错信息
提交结果如下:
题目 1002 写出这个数 (20)(20 分)
作者: CHEN, Yue
单位: PAT联盟
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu 我的代码如下:
1 #include2 #include 3 /*输入n<10^100,则nmax=999…^9,100个9。则输出s<=9*100=900*/ 4 5 const char *ntoc[10]={ "ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; 6 7 int main(){ 8 char inputString[100]; 9 int s,i; 10 s=i=0; 11 12 if(scanf("%s",inputString)==1){ 13 for(int i=0;i
hhhh 知道了,是 三位数结果X0X,丢失十位
18 //结果肯定是1至3位19 if(s/100!=0){ //百位数不为零,s是三位数,输出百位 20 printf("%s",ntoc[s/100]); 21 s=s%100; 22 } 23 //十位数不为零 24 if(s/10!=0){ 25 printf("%s",ntoc[s/10]); 26 s=s%10; 27 }
1 #include2 #include 3 //输入 n<10^100,则 n 最多有99位,则输出 s <= 9*99 = 891 4 5 const char *ntoc[10]={ "ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; 6 7 int main(){ 8 char c; 9 int s=0; 10 11 12 while((c = getchar()) != '\n'){ 13 s += c - '0'; 14 } 15 //printf("%d:",s); 16 //接下来对结果进行拼音转换 17 //结果肯定是1至3位 18 if(s/100!=0){ //百位数不为零,s 是三位数,输出百位和十位 19 printf("%s ",ntoc[s/100]); 20 s=s%100; 21 printf("%s ",ntoc[s/10]); 22 s=s%10; 23 } 24 else if(s/10!=0){ //百位数为零,十位数不为零,s 是两位数,输出十位 25 printf("%s ",ntoc[s/10]); 26 s=s%10; 27 } 28 //输出个位数 29 printf("%s",ntoc[s/1]);//ntoc(n/1); 30 return 0; 31 }
通过啦~~
总结,有某个测试点过不去,肯定是代码某个细节有问题,要仔细查逻辑哦~