#include <stdio.h>
#define max 80
char fenge(int n)
{int i=0;
char a[max],b[max];
if(n)
{
a[i]=n%10;
n/=10;
i++;
while(n!=0&&i%3==0)
{
a[i]=',';
i++;
}
}
else
{a[i]='.';
return("%s",a[i]);
}}
int main(void)
{double num,n, m;
int i=0;
char b[max];
scanf("%f",&num);
n=modf(num,&m);
if(b[i]!=' ')
{ b[i]=m*100/10;
i++;}
b[max]=strcat(fenge(n),b);
printf("%s",b);
}
试试这个
----------------解决方案--------------------------------------------------------
11楼的朋友,可否对程序做一下解释,b[i]=m*100/10,执行这句后,b[i]得到的是什么值?
----------------解决方案--------------------------------------------------------
编译时 return("%s",a[i]);
出现警告:code has no effect in function fenge
----------------解决方案--------------------------------------------------------
以下是引用armaycn在2006-10-26 12:41:48的发言:
谢谢各位支持!尤其是nuciewth,不过在下是初学者,nuciewth可否把程序写完整,还有n是否就是指输入数字的宽度呢?急求,再次感谢各位!
谢谢各位支持!尤其是nuciewth,不过在下是初学者,nuciewth可否把程序写完整,还有n是否就是指输入数字的宽度呢?急求,再次感谢各位!
n是要处理数的整数部分.不好意思,我没有写清楚.
----------------解决方案--------------------------------------------------------
a[i]=n%10+'0';是什么意思?
----------------解决方案--------------------------------------------------------
以下是引用armaycn在2006-10-26 21:28:54的发言:
a[i]=n%10+'0';是什么意思?
a[i]=n%10+'0';是什么意思?
将数字转换为数字字符输出.当然可以不用做的.
n%10是指每次将最末位拿出来的.
比如1234
1234%10==4
1234/10==123
123%10==3
...
----------------解决方案--------------------------------------------------------
请问斑竹,如果用指针指向这个字符穿,那么小树点是不是不作为一个单位的,指针是不是不会指向小树点的?是不是,求教
----------------解决方案--------------------------------------------------------
用字符串当然要考虑小数点的.(在处理时区分整数部分).遇到小数点就跳过处理.
----------------解决方案--------------------------------------------------------