pat1002

两种方法,一种是常规的,另一种还可以用栈来解决,能力实在有限。也是刚接触,脑子转不过来,-'0'就是转换为数字,然后就是%10/10什么的,然后记录个数逆序输出就行。注意最后没有空格,用i判断是否达到最后一位。

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main()
 5 {
 6     char str[10000];
 7     char arr[10][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
 8     gets(str);
 9     int len=strlen(str);
10     int num[100]={0};
11     for(int i=0;i<len;i++)
12     {
13         num[i]=str[i]-'0';
14     }
15     int sum=0;
16     for(int i=0;i<len;i++)
17     {
18         sum+=num[i];
19     }
20     int temp[100];
21     int t=0;
22     while(sum)
23     {
24         temp[t]=sum%10;
25         t++;
26         sum/=10;
27     }
28     for(int i=t-1;i>=0;i--)
29     {
30         if(i!=0)
31             printf("%s ",arr[temp[i]]);
32         else
33            printf("%s",arr[temp[i]]);
34     }
35     return 0;
36 }

 

posted @ 2023-02-16 17:52  yaoyaoasddasdsa  阅读(19)  评论(0)    收藏  举报