m0_73517546 2022-10-03 10:16 采纳率: 72.7%
浏览 15
已结题

关于#while#的问题,如何解决?

#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x<0){
printf("fu");
x = -x;
}
int mask = 1;
int t = x;
while(t>9){
t /= 10;
mask *= 10;
}
do{
int d = x / mask;
switch(d){
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");
break;

    }
    if(mask > 9){
        printf(" ");
        x %= mask;
        mask=mask/10;
    }
}
    while (mask >0 );
printf("\n");
return 0;

}
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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
为啥系统显示运行超时?

  • 写回答

2条回答 默认 最新

  • X-道至简 2022-10-03 10:42
    关注

    if(mask > 9){ 这句话改成 if(mask > 0){ 9改成0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月12日
  • 已采纳回答 10月4日
  • 创建了问题 10月3日