失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 某一个输入的位数不确定的正整数按照标准的三位分节格式输出

某一个输入的位数不确定的正整数按照标准的三位分节格式输出

时间:2024-08-24 09:42:52

相关推荐

某一个输入的位数不确定的正整数按照标准的三位分节格式输出

题目描述:

编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。

编程,一个良好的思维极其重要。

首先分析输入:输入是一个多位数(int型)

输出分析:82,668,634为一个字符串

思考:如何处理这个多位数?怎么样处理才能使用里面的数字。这时候对于十进制的多位数往往是采用除以10取余数,一位一位的提取出来。

例如:123

123/10= 12*****3

12/10 = 1******2

1/10 = 0******1

这样就能把1,2,3以倒叙的方式提取出来,再使用cstring库中的strrev使字符串颠倒过来,这样就变成了1 2 3以单个元素的形式存储在内存单元里。

这里我们注意到,逗号“,”的添加方式是从最低位每逢三添加一个,这样,我们只需要利用一个计数器,提取一位,+1,当加三的时候,额外添加一个逗号“,”,最后翻转一下即可。

初步代码如下:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

cout << "请输入一个整数:" << endl;

int n;

cin >> n;

int count = 0;//计数器,初始化为0

char a[50];//用数组存储处理过后的数据

char *p = a;//使用指向数组a的指针

while(n != 0)

{

*p = n % 10 + '0';//注意这里 +‘0’ 是必须的,如果不加‘0’的话,指针的值不会转换成数值1,2,3??????

n = n / 10;//会自动下取整

count ++;//取出一位最高位的数后,计数器加一(也相当于现在p中数据的位数)

p++;//指针p后移一位,以便于写入下一位数

if(count % 3 == 0 && n!= 0)//注意这里必须添加这个条件,因为如果整数位数恰好是3的倍数的话,会导致逗号多添加 //一个,比如123,当count == 3时,这时候p中会使3,2,1,会在最末尾添加多余的逗//号“,”,所以,必须添加这个条件。

{p = ',';

p++;//指针p后移一位,以便于写入下一位数

}

}

strrev(a);

cout << a <<endl;

return 0;

}

如果觉得《某一个输入的位数不确定的正整数按照标准的三位分节格式输出》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。