C语言编程 最后运行结果为什么不对啊,有截图

编程序实现如下功能: (1)输入一个小写金额值(如1002300.90)。 (2)将它的每一位分离出来并存入到一个一维数组中,每一位数存入一个数组元素中。 (3)将它转化为大写金额值并输出(如壹佰万贰仟叁佰元零玖角整)。 
#include<stdio.h>
void main()
{
double r,y;
int x,m,n,j,i,k,flag=0;
printf("请输入金额值:\n");
scanf("%lf",&r);
y=r-(int)r;
x=(int)r;
char *a[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char *b[]={"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元","角","分"};
char c[100];
for(i=0;i<=11;i++)//整数部分
{
m=x%10;
c[11-i]=m;
x=(int)(x/10);
}
c[12]=int(y*10);//小数部分
c[13]=int(y*100)%10;
for(k=0;k<=13&&flag==0;k++)//判断最大位
{
if(c[k]>0)
{
flag=1;n=k;
}
}
for(j=n;j<=13;j++)
printf("%s%s",a[c[j]],b[j]);printf("\n");
}
或者帮我写个这样的程序

第1个回答  2014-05-26

double型数据输入有误差,单步跟综r的数据

追问

可以说一下怎么改么

追答

不好意思,还真不知道

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网