BASIC-20 数的读法

来源:互联网 发布:c语言做游戏 编辑:程序博客网 时间:2024/05/17 09:15



#include<stdio.h>#include<string.h>#include<math.h>int main(void){char a[11][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};char b[10];char c[5][5] = {"\n","shi", "bai","qian"};char d[3][4] = {"\n","wan","yi"};  \\杭电OJ不支持{[1]="wan"}的情况,只能这么处理int n, i, flag;gets(b);n = strlen(b);if( (n-1) % 4){                            \\为了符合输出格式只能将第一个数提出来if( (n-1) % 4 != 1){printf("%s", a[b[0]-'0']);printf(" %s", c[(n-1)%4]);}else{printf("%s", c[(n-1)%4]);  \\十位为一且为最高位的只出现‘十’,不出现一,故分类讨论}}else{printf("%s", a[b[0]-'0']);printf(" %s", d[(n-1)/4]);}
for( i = 1; i <= n-1; i++){flag = n-1-i;if( flag % 4 ){\\整除四时为会的万位和亿位,不整除时都是千、百、十位 if( b[i]-'0' && b[i-1]-'0' == 0){\\考虑出现xx零xx的情况printf(" ling %s", a[b[i]-'0']);printf(" %s", c[flag % 4]);}else if( b[i]-'0'){printf(" %s", a[b[i]-'0']);printf(" %s", c[flag % 4]);}}else{if( b[i]-'0' && b[i-1]-'0' == 0){printf(" ling %s", a[b[i]-'0']);printf(" %s", d[flag / 4]);}else if( b[i]-'0'){printf(" %s", a[b[i]-'0']);printf(" %s", d[flag / 4]);}else if( b[i]-'0' == 0){printf(" %s", d[flag / 4]);}}}return 0;}

0 0
原创粉丝点击