提交: 20 解决: 6
[ 提交][ 状态]
题目描述
应该用标准的汉语,即“零”“壹”“贰”“叁”“肆”“伍”“陆”“柒”“捌”“玖”“拾”“佰”“仟”来读。
编程时请这样定义:
char s1[10][4]={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”}
char s2[3][4]={“拾”,“佰”,“仟”}
输入
输出
样例输入
1111
1001
样例输出
壹仟壹佰壹拾壹
壹仟零壹
错误代码:
#include<stdio.h>
#include<string.h>
char s1[10][4]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char s2[3][4]={"拾","佰","仟"};
int main()
{
char a[10];
while(gets(a)!=NULL)
{
int len;
len=strlen(a);
int i,j;
int n;
if(len==1)
{
n=a[0]-'0';
for(i=0;i<4;i++)
printf("%c",s1[n][i]);
}
else if(len==2&&a[0]=='1')
{
for(i=0;i<4;i++)
printf("%c",s2[0][i]);
n=a[1]-'0';
if(a[1]!='0')
for(i=0;i<4;i++)
printf("%c",s1[n][i]);
}
else
for(i=0;i<len;i++)
{
n=a[i]-'0';
// printf("%d ",n);
if(a[i]=='0'&&a[i+1]=='0'||a[i]=='0'&&i==len-1)
continue;
else
{
for(j=0;j<4;j++)
printf("%c",s1[n][j]);
if(n!=0&&i!=len-1)
for(j=0;j<4;j++)
printf("%c",s2[len-i-2][j]);
}
}
printf("\n");
}
return 0;
}
提交了好几次都错误了,求大神指教!!!