【C语言】每日一题(添加逗号)

添加逗号,链接奉上

目录

方法1:整体存入

思路:

整体思路:

我们发现这个整数N对于最后1位是比较容易操作的,

故我们可以倒序存入一个字符数组,每隔3位在输入一个逗号

例如:

我们有1 2 3 4 5

我们在字符数组中倒序存入:5 4 3 ,2 1

最后倒序输出:12,345

代码实现:

c 复制代码
int main()
{
	int n = 0;
	scanf("%d", &n);
	char arr[20];
	int i = 0;
	int count = 0;
	while (n)
	{
		if (count != 0 && count % 3 == 0)
		{
			arr[i++] = ',';
			count = 0;
		}
		arr[i++] = n % 10 + '0';
		//因为是字符数组,需要+'0',否则以字符形式输出时为特殊字符,输出不了
		count++;
		n /= 10;

	}
	for (i--; i >= 0; i--)
	{
		printf("%c", arr[i]);
	}
	return 0;
}

方法2:分段输出

思路:

将数字每位倒序输入进整形数组,

输出时先判断最开始 的前几位是否满足3位,以此考虑是否需要输出逗号

判断完后再3位输出一次逗号

代码实现:

c 复制代码
int main()
{
	int n = 0;
	int tmp = 0;//防止找不到n
	scanf("%d", &n);
	tmp = n;
	int arr[20] = { 0 };
	int i = 0;
	while (tmp)//利用tmp操作
	{
		arr[i++] = tmp % 10;
		tmp /= 10;
	}
	tmp = n;//恢复tmp
	int first = 0;
	int count = 0;//用来维护first
	first = i % 3;//3位一个逗号,第一个需要根据情况判断
	if (first != 0 && i > 3)
	//当满足3倍的位数时或是位数小于3时,不需要对第一个逗号特殊判断
	{
		for (i--; i >= 0; i--)
		{
			printf("%d", arr[i]);
			count++;
			if (count == first)
			{
				printf(",");
				break;
			}
		}
	}
	count = 0;
	for (i--; i >= 0; i--)
	{
		printf("%d", arr[i]);
		count++;
		if (i != 0 && count % 3 == 0)
		{
			printf(",");
		}
	}
	return 0;
}

欢迎讨论

相关推荐
个 人 练 习 生16 分钟前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
2601_9669496525 分钟前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
坤坤子吖28 分钟前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
奋斗的阿狸_198638 分钟前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
weixin199701080161 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
2401_862880821 小时前
iMX6ULL 驱动工程搭建 + LED 灯驱动
c语言·驱动开发·嵌入式硬件
ACP广源盛139246256731 小时前
Type‑C 扩展坞方案选型笔记|国产 DP1.4 转 HDMI2.0 桥接芯片 GSV2201S @ACP评估
c语言·开发语言·笔记·硬件架构·硬件工程·国产芯片
沐欣工作室_lvyiyi1 小时前
超市智能货架系统设计与实现(论文+源码)
c语言·单片机·课程设计·电子信息工程毕业设计·黑龙江工商学院·广州工商学院·成都工业学院
niucloud-admin1 小时前
JAVA V6 多商户商城 开发文档——JAVA服务端
java·开发语言
轻舟技术A2 小时前
Pi 的 Rust 实现来了:rpi,不止一个终端 Agent
开发语言·后端·rust