免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1335 | 回复: 2
打印 上一主题 下一主题

关于阿拉伯转大写中问代码的疑问~~请大家帮帮我  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-14 02:38 |只看该作者 |倒序浏览
请大家帮我看看。
这是我写的将小写阿拉伯数字转换成大写中文的代码?

编辑成功了,但是不能运行

在代码后面我写了,很详细的解释。

希望大家帮下我



#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]]);
}
}

论坛徽章:
0
2 [报告]
发表于 2005-01-14 02:45 |只看该作者

关于阿拉伯转大写中问代码的疑问~~请大家帮帮我

GCc提示我是段错误

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-01-14 08:48 |只看该作者

关于阿拉伯转大写中问代码的疑问~~请大家帮帮我

这程序写得。。。不通啊!
段错误是因为
for(i=0;n!=2;i++) //将整数部分存在数组中
n!=2  ==>; i != 2
还有
char num[2][4]; //存放整数部分的数组
怎么可能
for(i=0;i<=2;i++) //转化部分
???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP