头歌某题目

这篇博客介绍了如何使用C和C++编写函数,将输入的整数转换为带有千分位分隔符的字符串。在C语言版本中,通过循环和条件判断实现,而在C++版本中,利用递归完成。两个版本的代码都实现了倒序输出结果,确保正确读取和打印整数。
摘要由CSDN通过智能技术生成

 题目:编写函数,对于任意输入的一个整数,转换为千分位分隔的字符形式,在主函数中调用并输出。

C语言

#include<stdio.h>
char arr[32];//全局字符串——长度根据数位的长度来写;(这里暂时为32位)
int i = 0;//计数器(下角标)
void zhuan(int x)
{

	while (x != 0)
	{
		arr[i] = x % 10 + '0';//0~9的ASCII码为48~57;
		i++, x /= 10;		//计数器进行自增,x取余数,
		if (x == 0)			//x==0相当于上一步的x为个数,如果再次除10就为小数了
			break;
		if ((i + 1) % 4 == 0)//每三位数后加一个逗号也就是四位一个回合,所以整除4;
		{
			arr[i] = ',';
			i++;
		}
	}
}
int main()
{
	int x;
	scanf("%d", &x);
	zhuan(x);//进行函数功能,把每一位数赋值到字符串中
	for (int j = i - 1; j >= 0; j--)//因为i++在break;前面,所以要减一,并且倒序输出。
		printf("%c", arr[j]);
	return 0;
}

c++

#include<iostream>
using namespace std;
char str[32];//全局字符串——长度根据数位的长度来写;(这里暂时为32位)
int n = 0;//计数器(下角标)
void zhuan(int x)
{
	str[n] = x % 10+48;//0~9的ASCII码为48~57;
	x /= 10;
	n++;
	if ((n + 1) % 4 == 0) { str[n] = ','; n++; }//每三位数后加一个逗号也就是四位一个回合,所以整除4;
	if (x < 10) str[n] = x+48;//取余最后小于4了说明该数再次除10就小于0了
	else zhuan(x);//递归
}

int main()
{
	int x;
	cin >> x;
	zhuan(x);//开始进行递归功能,使全局字符串赋值。
	
	for (int i = n; i >= 0; i--)//倒序输出字符串
		cout << str[i];
	return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值