题解 | #添加逗号#

添加逗号

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--]);
		}   
    }
}
全部评论

相关推荐

点赞 评论 收藏
转发
2 收藏 评论
分享
牛客网
牛客企业服务