题解 | #添加逗号#
添加逗号
http://www.nowcoder.com/practice/f51c317e745649c0900996fd3f683aed
用的方法比较笨,首先是将输入数字的每一位放入数组,注意此时数组实际上存的是倒过来的数字。然后设置变量i用于统计最后输出字符串的长度,count变量则为数字实际的位数,循环中的i-j-1相当于一个新的下标,在这个从大到小递减的下标中每到4的倍数便输出“,”。写的时候也是一步步试出来的,后面捋清楚思路了再来更新一下题解。
#include<stdio.h>
int main(){
int i=0,j,m,k,count=0;
int a[15]={0};
scanf("%d",&m);
while(m!=0){
a[i]=m%10;
m=m/10;
i++;
count++;
}
if(i%3!=0){//这一步是确定后面输出字符串的长度
i=i+i/3+1;
}else{
i=i+i/3;
}
for(j=0,k=count-1;j<i-1;j++){
if((i-j-1)%4==0){//在4的倍数的位置要输出
printf(",");
}else{
printf("%d",a[k--]);
}
}
}