【C语言刷题系列】对数字添加逗号

目录

一、问题描述

二、解题思路

三、源代码

 拓展:


        个人主页:    倔强的石头的博客

        系列专栏 C语言指南         C语言刷题系列  

一、问题描述

二、解题思路

题目的要求,即对于一个较大的整数,每三位数字之间添加一个逗号,以便于阅读。这意味着我们需要从整数的最低位(最右边)开始,每数到三位数字就插入一个逗号,直到数完整个整数

一种有效的解决办法就是将数字转换为字符从右向左每次%10得到一位数字转换为字符存储到数组中,再除以10去掉一位数字。其次,要注意每次满三位添加一个逗号至数组,并且只有满3位时才添加逗号。最后,将得到的这个字符数组逆序输出。

三、源代码

int main()
{
	int N = 0;
	scanf("%d", &N);//读入要处理的整数

	char arr[14] = { 0 };//存储处理后的结果
	int count = 0;//计数器
	int i = 0;
	for (; N != 0; N /= 10)
	{
		if (count != 0 && count % 3 == 0)
		{
			arr[i++] = ',';//每三位添加一个逗号,并且count初始为0时不添加
		}
		arr[i++] = N % 10 + '0';//将每一位转换为对应的字符存入数组
		count++;
	}
	for (i--; i >= 0; i--)
	{
		printf("%c", arr[i]);//逆序输出
	}
	printf("\n");
	return 0;
}

 

 拓展:

如果想要让最后得到的字符数组以及打印时,是正常顺序,可以修改如下:

(将得到的字符数组顺序反转一下,最后只需要用%s打印即可)

#include<stdio.h>
int main()
{
	int N = 0;
	scanf("%d", &N);//读入要处理的整数

	char arr[14] = { 0 };//存储处理后的结果
	int count = 0;//计数器
	int i = 0;
	for (; N != 0; N /= 10)
	{
		if (count != 0 && count % 3 == 0)
		{
			arr[i++] = ',';//每三位添加一个逗号,并且N初始为0时不添加
		}
		arr[i++] = N % 10 + '0';//将每一位转换为对应的字符存入数组
		count++;
	}
	int j = 0;//数组的首部下标
	i--;   //数组的尾部下标
	       //因为上面的代码块处理时i多+了1,所以这里-1才能得到正确的下标
	while (j < i)
	{
		char tmp = arr[j];
		arr[j] = arr[i];
		arr[i] = tmp;
		j++;
		i--;
	}
	printf("%s\n", arr);
	return 0;
}

   个人主页:    倔强的石头的博客

(关注作者,获取更多有趣实用的编程知识哦) 

相关推荐

  1. 「笔试」:添加逗号

    2024-04-29 21:56:01       28 阅读
  2. C语言(18)

    2024-04-29 21:56:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 21:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 21:56:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 21:56:01       82 阅读
  4. Python语言-面向对象

    2024-04-29 21:56:01       91 阅读

热门阅读

  1. flume配置

    2024-04-29 21:56:01       34 阅读
  2. python绘制三维散点图

    2024-04-29 21:56:01       35 阅读
  3. 嵌入式学习——C语言基础——day12

    2024-04-29 21:56:01       37 阅读
  4. Python学习路线图及开源库和工具推荐

    2024-04-29 21:56:01       25 阅读
  5. Seata分布式事务!!!

    2024-04-29 21:56:01       33 阅读
  6. 统计字符次数

    2024-04-29 21:56:01       36 阅读
  7. APP漏洞频发怎么办?渗透测试有用吗

    2024-04-29 21:56:01       34 阅读
  8. leetcode1146--快照数组

    2024-04-29 21:56:01       38 阅读