时间限制: 1 Sec 内存限制: 128 MB 提交: 20 解决: 6 [提交][状态]题目描述小A在学校不好好学习,天天忙着玩。四年很快过去,好不容易找了份工作,其实就是码代码的底层码农。看着到手的工资,小A很是失望。一方面后悔过去,另一方面羞于启齿。我们要做的一是引以为戒,二是大声地替小A把工资读出来,不过注意不要带口音噢! 应该用标准的汉语,即“零”“壹”“贰”“叁”“肆”“伍”“陆”“柒”“捌”“玖”“拾”“佰”“仟”来读。 编程时请这样定义: char s1[10][4]={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”} char s2[3][4]={“拾”,“佰”,“仟”}
输入一个整数n(0<n<5000) 输出这个数字的中文读法 样例输入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;
}
提交了好几次都错误了,求大神指教!!!
|