念数字里有 两个错误!!!!

xiaoxiao2021-02-28  47

7-9 念数字(15 分)

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:

0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu

输入格式:

输入在一行中给出一个整数,如:1234。

提示:整数包括负数、零和正数。

输出格式:

在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。

输入样例:

-600

输出样例:

fu liu ling ling

#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> char str[100001][100]; int main(void) {     int a[100];     long c, b, y, d, w = 0, t, i, j;     scanf("%ld", &y);     c = abs(y);     b = c;     d = c;     while(b / 10)     {         b = b / 10;         w++;     }     w += 1;     for(i = 0; i < w - 1; i++)     {         if(d / 10)         {             a[i] = c % 10;             d = d / 10;         }     }     a[w - 1] = d;     i = 0; j = w - 1;     while(i < j)     {         t = a[i];         a[i] = a[j];         a[j] = t;         i++;         j--;     }     for(i = 0; i < w; i++)   {          if(a[i] == 0)     {         strcpy(str[i], "ling");     }     if(a[i] == 1)     {         strcpy(str[i], "yi");     }     if(a[i] == 2)     {         strcpy(str[i], "er");     }     if(a[i] == 3)     {         strcpy(str[i], "san");     }     if(a[i] == 4)     {         strcpy(str[i], "si");     }     if(a[i] == 5)     {         strcpy(str[i], "wu");     }     if(a[i] == 6)     {         strcpy(str[i], "liu");     }     if(a[i] == 7)     {         strcpy(str[i], "qi");     }     if(a[i] == 8)     {         strcpy(str[i], "ba");     }     if(a[i] == 9)     {         strcpy(str[i], "jiu");     }   }   if(y < 0)   {       printf("fu ");       for(i = 0; i < w - 1; i++)       {           printf("%s ", str[i]);       }       printf("%s\n", str[w - 1]);   }   if(y > 0)   {       for(i = 0; i < w - 1; i++)       {           printf("%s ", str[i]);       }       printf("%s\n", str[w - 1]);   }   if(y == 0)   {       printf("ling\n");   }     return 0; }

转载请注明原文地址: https://www.6miu.com/read-2614086.html

最新回复(0)