- 论坛徽章:
- 0
|
请大家帮我看看。
这是我写的将小写阿拉伯数字转换成大写中文的代码?
编辑成功了,但是不能运行
在代码后面我写了,很详细的解释。
希望大家帮下我
#include <stdio.h>;
main()
{
double x,y;
char *ch[]={"0","1","2","3","4","5","6","7","8","9"}; //因为UNIX下不能显示中文,只有先中这个代理
char *ch1[]={"w","q","b","s"}; //w是万 q是千 b是百 s是十
char num[2][4]; //存放整数部分的数组
char snum[3]; //存放小数部分的数组
long i,n,j,t,o;
printf("input:" ;
scanf("%f",&x);
n=(long)x; //得到整数部分
y=x-n; //得到小数部分
t=(long)y*100+0.5; //将多少位小数转化成只有两位小数,再转成整数。如0.123就转化为12
for(i=0;n!=2;i++) //将整数部分存在数组中
{for(o=0;o!=4;o++)
{
num[o]=(char)(n%10);
n/=10;
}
}
for(i=0;t!=0;i++) //将小数部分存在数组中
{
snum=(char)(t%10);
t/=10;
}
for(i=0;i<=2;i++) //转化部分
{
for(o=3;i>;=3;o--)
{
if(num[o]>;1 && num[o]<9) //先判断1-9的数,0后面判断
{printf("%s",ch[(int)num[o]]); //通过数字输出相应的 中文
printf("%s",ch1[o-1]); //这是输出 十 百 千 等
}
else if(num[o-1]==0); //判断0,如果下一位还是0就不输出
else printf("0" ;
if(i==0) printf("yi" ; //这是判断输出 元 万 亿
else if(i==1) printf("wan" ;
else if(i==2) printf("yuan" ;
}
}
if(snum[0]+snum[1]>;0) //小数部分的判断
{
if(snum[0]>;0) printf("%sjiao",ch[(int)snum[0]]);
else printf("零" ;
if(snum[1]>;0) printf("%sfen",ch[(int)snum[0]]);
}
} |
|