帮帮忙!!! 阿拉伯数字转换中文数字 有什么好的方法 越简单越好
用户输入万亿以下的数字转换成中文数字。 例如:输入:123456
输出:十二万三千四百五十六
输入:10
输出:十
特例:输入:120000
输出:十二万
#include<stdio.h> #include<string.h> #define N 20 int main(void) { char bit[6][4]={"","","千","百","十",""}; char num[11][4]={"","一","二","三","四","五","六","七","八","九"}; char str[N]; int i,j,len; while(1) { scanf("%[0-9]9s",str); while(getchar()!='\n'); if(str[0]=='0') { puts("零"); break; } len=strlen(str); if(len>9) { str[9]=0; len=9; } for(i=0,j=len;i<len;++i,--j) { if(str[i]=='0') { if(str[i+1]!='\0'&&str[i+1]!='0') { printf("零"); } if(len-i!=5&&len-i!=9) continue; } printf("%s%s",num[str[i]-'0'],bit[(5-j%5)%5+(len-i>5?0:1)]); if(len-i==9) { printf("亿"); } if(len-i==5&&len<9) { printf("万"); } } puts(""); } return 0; }