题目描述
小A在学校不好好学习,天天忙着玩。四年很快过去,好不容易找了份工作,其实就是码代码的底层码农。看着到手的工资,小A很是失望。一方面后悔过去,另一方面羞于启齿。我们要做的一是引以为戒,二是大声地替小A把工资读出来,不过注意不要带口音噢!
应该用标准的汉语,即“零”“壹”“贰”“叁”“肆”“伍”“陆”“柒”“捌”“玖”“拾”“佰”“仟”来读。
编程时请这样定义:
char s1[10][4]={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”}
char s2[3][4]={“拾”,“佰”,“仟”}
应该用标准的汉语,即“零”“壹”“贰”“叁”“肆”“伍”“陆”“柒”“捌”“玖”“拾”“佰”“仟”来读。
编程时请这样定义:
char s1[10][4]={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”}
char s2[3][4]={“拾”,“佰”,“仟”}
输入
一个整数n(0<n<5000)
输出
这个数字的中文读法
样例输入
1111
1001
样例输出
壹仟壹佰壹拾壹
壹仟零壹
源程序:
#include<stdio.h>
#include<string.h>
int main()
{
char s1[10][4]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char s2[3][4]={"拾","佰","仟"};
char a[10];
int i,len,h;
while(gets(a) != NULL)
{
h = 0;
len = strlen(a);
for(i = 0; i < len; i++)
{
if(a[i] == '0')
{
if(i==(len-1))//当最后一位为'0'时,直接输出换行
printf("\n");
h = 1;//若此位有'0'标记,并跳转
continue;
}
if(h == 1 && a[i]!='0')//若此位前面是'0',且它不为'0'输出‘零’
{
printf("%s",s1[0]);
h=0;//并将标记重新置0
}
if(h==0 && a[i] != '0' && i != (len-1))
{
printf("%s",s1[a[i]-'0']);
printf("%s",s2[len-i-2]);
}
//最后一位不为'0'并换行
if(a[i]!='0'&&i==(len-1))
{
printf("%s",s1[a[i]-'0']);
}
if(i==(len-1))
printf("\n");
}
}
return 0;
}