标签:src text view 没有 空格 info += \n 作者
提交结果如下:
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
我的代码如下:
1 #include<stdio.h>
2 #include<string.h>
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<strlen(inputString);i++){
14 s+=(int)inputString[i]-48;
15 }
16 //printf("%d:",s);
17 //接下来对结果进行拼音转换
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 }
28 //个位数
29 printf("%s",ntoc[s/1]);//ntoc(n/1);
30 }
31 return 0;
32 }
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 #include<stdio.h>
2 #include<string.h>
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 }
通过啦~~
总结,有某个测试点过不去,肯定是代码某个细节有问题,要仔细查逻辑哦~
标签:src text view 没有 空格 info += \n 作者
原文地址:https://www.cnblogs.com/littleAlice/p/9660756.html