一道题 有点想不通 大家帮帮忙 呵呵谢谢
现在假设摆在你面前有若干金钱,请按照指定的格式输出金额,要求小数点前每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; }用字符串的确有点麻烦,呵呵。