1 题目要求
https://www.patest.cn/contests/pat-b-practise/1002
2 源代码
#include<stdio.h> int main(void){ int s1,s2,s3; int sum=0; int i=0; char n; //输入的字符 //不知道循环次数,用while循环 ,求和 while((n=getchar())!=' ' && i<101){ sum=sum+(n-'0');//字符转换成数字 i++; } //用汉语拼音表示和的各位数字 char shu[][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; s1=sum/100;// 百位 s2=(sum/10)%10;//十位 s3=sum%10;//个位 if(s1==0&&s2==0){ printf("%s",shu[s3]); //结果是1位数的情况下,假设结果6,则打印shu[6] }else if(s1==0&&s2!=0){ printf("%s %s",shu[s2],shu[s3]); }else{ printf("%s %s %s",shu[s1],shu[s2],shu[s3]); } }
3 评测结果
评测通过
这题其实逻辑很简单,考察的其实完全是基本功。如何将字符转化成数字,二维字符数组的定义,以及后获取各个位置的数字等。以及基本的输入输出格式