#include
int main()
{ int n, i, count;
i=0;
count=0;
scanf("%d", &n);
char pinyin [11][5]={"ling","yi","er","san"
,"si","wu","liu","qi","ba","jiu"};
int store [10];
if (n==0)
printf("ling");
while (n!=0)
{if (n>0)
{store [i]=n%10;
n/=10;
i++;}
else
{store [i]=-n%10;
n=-n/10;
i++;
printf("fu ");}
}
while (i>=0)
{
i--;
if (count>0)
{printf(" ");}
count++;
printf("%s", pinyin [store [i]]);
}
return 0;
}
一个数字拼音的程序,想问问大家,为什么最后while输出时候,必须i--在最前(不然结果就奇怪的错了),其他while自增自减都在循环最后。
因为上面while循环中,i++在后面,导致实际i值多加了1
因此下面的while,必须i先减去1
对于为什么在前,为什么在后,其本质就是如何去实现你的逻辑思路,代码不过就是对你逻辑思路的模拟。我们在写代码前可以先把自己的思路写在纸上,然后用代码一步一步去实现我们的思路就可以了