数字输出拼音(必威手机官网:有错误),即给

输出样例:

yi san wu

 1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stdlib.h> 5 int main() 6 { 7  8     int i,sum=0,sumnum; 9     int num[100];10     char length[100];11     scanf("%s",length);12     sumnum=strlen;13     for(i=0;i<sumnum;i++)14     {15     num[i]=length[i]-'0';16     sum=sum+num[i];17     }18     //此时sum为每一位数字的和19     20     int num1[100];//定义一个数组储存sum每一位sum的数21     i=0;//数组中i从0开始存个位 22     while(sum>0)23     {24         num1[i]=sum%10;25         sum=sum/10;26         i++;//i增加一位,数组存前一位 27      } //i也表示sum的位数 28     //此时要将数组中数字转化为拼音输出 29     30         for(i=i-1;i>=1;i--)//从num[i-1]开始输出头一位,到十位上的数31         {32           if(num1[i]==0)33         printf("ling ");34          else if(num1[i]==1)35             printf("yi ");36          else if(num1[i]==2)37             printf("er ");38          else if(num1[i]==3)39             printf("san ");40          else if(num1[i]==4)41             printf("si ");42          else if(num1[i]==5)43             printf("wu ");44          else if(num1[i]==6)45             printf("liu ");46          else if(num1[i]==7)47             printf("qi ");48          else if(num1[i]==8)49             printf("ba ");50          else 51             printf("jiu ");52         } 53            if(num1[0]==0)//个位上的数单独输出54         printf("ling");55           else if(num1[0]==1) 56             printf("yi");57           else if(num1[0]==2)58             printf("er");59           else if(num1[0]==3)60             printf("san");61           else if(num1[0]==4)62             printf("si");63           else if(num1[0]==5)64             printf("wu");65           else if(num1[0]==6)66             printf("liu");67           else if(num1[0]==7)68             printf("qi");69           else if(num1[0]==8)70            printf("ba");71           else 72            printf("jiu");73     return 0;74 }

2.求a的连续和

输入两个整数a和n,a的范围是[0,9],,n的范围是[1,8],求数列之和s=a+aa+aaa...

写出这个数 (20),写出20

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

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

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

 1 #include <stdio.h>
 2 #include <string.h>
 3  
 4 void print_num(int num)
 5 {
 6         char num_str[4] = {0};
 7         sprintf(num_str,"%d", num);
 8         char * temp = num_str;
 9         while(*temp != '')
10         {
11                 switch(*temp)
12                 {
13                         case '0': 
14                                 printf("ling");
15                                 break;
16                         case '1':
17                                 printf("yi");
18                                 break;
19                         case '2':
20                                 printf("er");
21                                 break;
22                         case '3':
23                                 printf("san");
24                                 break;
25                         case '4':
26                                 printf("si");
27                                 break;
28                         case '5':
29                                 printf("wu");
30                                 break;
31                         case '6':
32                                 printf("liu");
33                                 break;
34                         case '7':
35                                 printf("qi");
36                                 break;
37                         case '8':
38                                 printf("ba");
39                                 break;
40                         case '9':
41                                 printf("jiu");
42                                 break;
43                         default:
44                                 break;
45                 }
46                 temp++;
47                 if (*temp != '')
48                         printf(" ");
49                 else
50                         printf("n");
51         }
52 }
53  
54 int main(int argc, char *argv[])
55 {
56         char num[101] = {0};
57         char *temp = num;
58         int total = 0;
59         scanf("%s",num);
60         while(*temp != '')
61         {
62                 total += (*temp - '0');
63                 temp++;
64         }
65         print_num(total);
66         return 0;
67 }

 

(20),写出20 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含1个测试...

yi san wu

【总结】:
1.正常输入的话,加起来的总值是不会大于900的,所以最多就只有三位。
2.一共有6个测试点,据我推测:
测试点0和值为三位数。
测试点1和值为三位数且十位为0。
测试点2345和值都为一位数。
测试样例里没有0。

#include <stdio.h>
int main()
{
    char a[128];
    int sum=0;
    scanf("%s",&a);
    char *p=a;
    while(*p!=''){
        sum+=(*p-'0');
        p++;
    }
    char num[10][6]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    if(sum>=0&&sum<1000){
    if(sum/100!=0) printf("%s %s %s",num[sum/100],num[sum/10%10],num[sum%10]);
    else if(sum/10%10==0) printf("%s",num[sum%10]);
    else printf("%s %s",num[sum/10%10],num[sum%10]);
    }
    return 0;
}

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

输入格式:

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

输入一个整数,输出每一个数字对应的拼音

当整数为负数时,先输出“fu”字,十个数字对应的拼音如下:

0:ling

1:yi

2:er

3:san

4:si

5:wu

6:liu

7:qi

8:ba

9:jiu

1234567890987654321123456789
yi san wu

#include <stdio.h>
int main(){        
    char n; //输入的每一位数n
    int sum=0; //计算每一位数字累加的和
    int s1,s2,s3;  //和sum的百位各位和十位 , 因n不超过10的100次方, 所以sum小于9乘以100, 即sum一定不会大于三位数
    int i=0;
    while((n=getchar())!='n' && i<101){       
        sum = sum +(n-'0');  
        i++;
    }
    char shu[10][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};  //相比于switch case 语句更简洁一点
    s1=sum/100;
    s2=(sum/10)%10;
    s3=sum%10;
    if(s1==0 && s2==0){
        printf("%s",shu[s3]);    
    }else if(s1==0 && s2!=0){
        printf("%s %s",shu[s2],shu[s3]);
    }else {
        printf("%s %s %s",shu[s1],shu[s2],shu[s3]);
    }    
    return 0;
}

本文由必威发布于必威-编程,转载请注明出处:数字输出拼音(必威手机官网:有错误),即给

相关阅读