PATbasic1002. 写出这个数

来源:互联网 发布:淘宝商城眼镜 编辑:程序博客网 时间:2024/05/16 17:36

PAT 1002 写出这个数 (20) (Basic Level)

题目:

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

#include<stdio.h>  #include<string.h>int main()  {    int n,i,j=0,sum=0;char a[101];  int w[10];char pinyin[][9] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu"};  //设置拼音库 scanf("%s",&a);  //录入数字 for(i=0;i<strlen(a);i++)   sum=sum+a[i]-48;//注意这里减去ascii码48  也可以如 total=total+a[i]-'0'  while(sum!=0)  {  w[j]=sum%10;  sum/=10;j++;  }   printf("%s",pinyin[w[j-1]]);  //二维数组     for(i=j-2;i>=0;i--)          printf(" %s",pinyin[w[i]]);   return 0;        } //另外一种输出方式  //    while(digit)  //{    //      read=sum/digit;      //    sum%=digit;        //  digit/=10;          //switch(read){         // 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");          //}          //if(digit)           //   printf(" ");          //else            //  printf("\n");  //


0 0
原创粉丝点击