pat 输出各位数字之和,以拼音的形式

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    评测结果

      评测通过

      这题其实逻辑很简单,考察的其实完全是基本功。如何将字符转化成数字,二维字符数组的定义,以及后获取各个位置的数字等。以及基本的输入输出格式

原文地址:https://www.cnblogs.com/sunnybowen/p/8669721.html