题解 | #添加逗号#

添加逗号

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

相关推荐

不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务