<>PTA—念数字(C语言)两种方法

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu
<>输入格式:

输入在一行中给出一个整数,如:1234。

提示:整数包括负数、零和正数。

<>输出格式:

在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。

<>输入样例:
-600
<>输出样例:
fu liu ling ling
第一种:相关源码
#include<stdio.h> #include<string.h> int main() { char num[20]; int i; scanf(
"%s",&num); for(i=0;i<strlen(num);i++) { switch(num[i]) { case '-':printf("fu");
break; 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; default:break
; } if(i<strlen(num-1)) printf(" ");//每循环一次 打印一个空格 } return 0; } //2分
第二种:相关源码
#include<stdio.h> #include<string.h> int main() { char c; c=getchar(); while(c
!='\n') { if(c=='-')printf("fu"); else if(c=='0')printf("ling"); else if(c=='1')
printf("yi"); else if(c=='2')printf("er"); else if(c=='3')printf("san"); else if
(c=='4')printf("si"); else if(c=='5')printf("wu"); else if(c=='6')printf("liu");
else if(c=='7')printf("qi"); else if(c=='8')printf("ba"); else if(c=='9')printf(
"jiu"); c=getchar(); if(c!='\n')printf(" "); //每循环一次 打印一个空格 } return 0; } //10分
第一种虽然得到了两分,但是有一定的逻辑之处,若有改进的方法可以联系我,共同探讨,谢谢!!!
第一张改进方法来咯,感谢评论区的小伙伴们
将i<strlen(num-1)改为i<strlen(num)-1即可得满分
#include<stdio.h> #include<string.h> int main() { char num[20]; int i; scanf(
"%s",&num); for(i=0;i<strlen(num);i++) { switch(num[i]) { case '-':printf("fu");
break; 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; default:break
; } if(i<strlen(num)-1) printf(" ");//每循环一次 打印一个空格 } return 0; } //10分

技术
友情链接
码工具
Toolsou
API参考文档
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信