C语言题目-添加逗号(详解)

       前言

         今天来看看如何使用C语言对一串数字添加逗号吧,在我们电子账户上的余额都是每3位数有一个逗号吧,今天让我们来使用C语言实现这个功能。

        题目描述

        对于一个较大的整数 N(1<=N<=2,000,000,000)

        比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这 个数字每三位加一个逗号,它会变得更加易于朗读。

        因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序帮杰克完成这件事情吧

        输入描述

        一行一个整数 N

        输出描述

        一行一个字符串表示添加完逗号的结果

        题目分析

        我们来看看这道题目,首先我们要理清楚这道题目的思路,我们需要一个变量来存放咋们输入的数字N,但是如何在这个变量中添加‘,’进去呢,我们可以定义一个数组来存放这个数字中的每一位数,之后在数组中添加逗号是不是就会简单很多呢。

        听起来是不是很简单,其实在这里面我们还需要去想,我们要以怎样的方式将数字与逗号同时存放在数组中,我们是每三位存一个逗号,之后其他数字顺着往后移3位?还是每次存3位加逗号将后面的位数覆盖之后再拷贝后面的数据进入之后再存3位加逗号如此循环?这个思路看起来是没有问题但是实现困难,在想写代码的时候都没有头绪的。

        之后了解到一个方法,我们可以将数字倒着存放到一个数组里,每存3位加一个‘,’,循环存放直到结束,之后我们将字符串倒着往回打印即可。

        为什么我们要将数字倒着存放进入数组呢,因为在倒着存放数组的时候我们只需要不断的对数字模10,这样我们就可以将数字一位一位的剥离出来,之后放入数组中添加‘,’就变得很简单了。

        代码实现

        

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int i = 0;
	int j = 0;
	char a[13] = { 0 };
	int k = 0;//创建变量k用来计数,直接使用i的话会引起数据混乱,i被加之后直接%3导致数字不能被
	//当n被剥离到0的时候结束循环
    while (n)
	{
		if (k != 0 && k % 3 == 0)
		{
			a[i++] = ',';
		}
		a[i++] = n % 10 + '0';
		n /= 10;
		k++;
	}
    //输出
	for (int j = i - 1;j >= 0;--j)
	{
		printf("%c", a[j]);
	}
	return 0;
}

        代码解析

        这里我们需要注意的是,当我们给n%10之后需要给n/10保证我们是有效剥离数字。

        运行结果

        

        在我们写代码的时候一定要明确思路,这个代码看似很简单,但是在写的时候因为思路的问题还是写了好久才写出来,还是练少了,加油加油!!!

        如果有不对的地方还请大佬指正!!跪谢

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值