蠢蠢的我
運(yùn)算結(jié)果出錯(cuò)....跟著算法走一遍.....
?
題目 :讀入一個(gè)自然數(shù)n,計(jì)算其各位數(shù)字之和,用漢語拼音寫出和的每一位數(shù)字。
?
第一:在不知道位數(shù)的情況下 利用 if 判斷for循環(huán)終止條件 來求sum?
? ? ? ?或者 定義一個(gè)數(shù)組 利用 n=-1 \ n++ \b[n] ?來記錄每一個(gè)位數(shù)
?
? ? ? ?也可以先求n的位數(shù) ?利用 for循環(huán) 每一循環(huán) n/10 count++ 利用if來判斷終止以求得位數(shù)count(但沒必要)
?
第二 ? 得到sum(135)后 求出sum的每個(gè)數(shù)字?
利用switch語句 若case=1 則輸出 yi
?
第三 ?利用for 和 if 滿足輸出格式
?
# include<stdio.h>
int main()
{
int n,i,j,chu,yu,t=1,sum=0,a[200];
scanf("%d",&n);
for( ;1;)
{
chu = n / t;
t = t * 10;
yu = n % 10 ;
sum = sum + yu;
if(yu == 0)
break;
}
t=1;
for(;1;)
{
chu = sum /t ;
t = t * 10;
yu= sum % 10;
i=0;
a[i]=yu;
i++;
if(yu == 0)
break;
}
t=0;
for(j=1;j<=i;j++)
{
t=t+1;
if(j != i)
{
switch(a[i-t])
{
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;
}
}
else
{
switch(a[i-t])
{
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;
}
}
}
return 0;
}
轉(zhuǎn)載于:https://www.cnblogs.com/wshyj/p/6003740.html
總結(jié)
- 上一篇: 每天学一点JAVA
- 下一篇: redis list操作