一道题 有点想不通 大家帮帮忙 呵呵谢谢
现在假设摆在你面前有若干金钱,请按照指定的格式输出金额,要求小数点前每3位加个千位分隔符(,)小数点后四舍五入保留2位.四舍五入没什么问题,那个小数点前每3位加个千位分隔符(,)怎么实现啊 想把它转换成字符数组操作好像不很好啊 呵呵 高手给点想法 谢谢
程序代码:#include<stdio.h>
int main()
{
char str[90];
int i,j=0,poin;
gets(str);
for(poin=0;str[poin]!='.'&&str[poin];poin++); // 第几位小数点
/*
这段添加健壮代码,例如排除非数字的情况,还有异常
*/
if(str[poin])
{
for(i=0;i<poin;i++)
{
putchar(str[i]);
if(i==poin%3-1&&poin>2) //处理第一个情况,而且排除不能加,号情况
putchar(',');
else
{
if(i>poin%3-1&&j+3<poin){ //通式,排除小数点前面个数为3倍情况
++j;
if(!(j%3))
{
putchar(',');
}
}
}
}
puts(str+poin); //排输出小数点后字符串
}
else
puts(str);
getchar();
return 0;
}
用字符串的确有点麻烦,呵呵。