第一题:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
参考代码1:
#include<stdio.h>
char str[10][10] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
int main()
{
char num;
while (((num = getchar()) != '\n'))
{
if ('-' == num)
printf("fu ");
else
printf("%s ", str[num - '0']);
}
printf("\b");
system("pause");
return 0;
}
参考代码二:
#include<stdio.h>
char str[10][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
int arr[10];
int main()
{
int nNum, i, nCount = 0;
scanf_s("%d", &nNum);
if (nNum < 0)
printf("fu ");
nNum = nNum < 0 ? -nNum : nNum;
while (1)
{
arr[nCount++] = nNum % 10;
nNum /= 10;
if (nNum == 0)
break;
}
for (i = nCount - 1; i >= 1; i--)
printf("%s ", str[arr[i]]);
printf("%s\n", str[arr[i]]);
return 0;
}