gpt4 book ai didi

c++ - 将逗号格式化为长整型

转载 作者:行者123 更新时间:2023-11-30 03:14:13 26 4
gpt4 key购买 nike

这是我第一次发布问题。我希望在一项非常古老的计算机科学作业上得到一些帮助,但我一直没有时间完成它。我不再上课了,只是想看看如何解决这个问题。

读入一个整数(任何有效的 64 位integer = long long类型)并输出相同的数字,但插入逗号。

如果用户输入 -1234567890,您的程序应该输出 -1,234,567,890。 Comm作为应该出现在每三个有效数字之后(如果剩余更多数字)开始从小数点开始,向左移动到更重要的数字。如果数输入不需要逗号,不要添加任何。例如,如果输入是 234 你应该输出 234。输入 0 应该产生输出 0。请注意上面的示例该数字可以是正数或负数。您的输出必须保持大小写输入。

我对编程还比较陌生,这就是我所能想到的:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
long long n;
cout << "Enter an integer:" << endl;

cin >> n;

int ones = n % 10;
int tens = n / 10 % 10;
int hund = n / 100 % 10;
int thous = n / 1000 % 10;
int tthous = n / 10000 % 10;

cout << tthous << thous << "," << hund << tens << ones << endl;

return 0;
}

最初的作业禁止使用字符串、数组和 vector ,所以请不要给出涉及这些的建议/解决方案。我知道可能需要某种 for 循环才能在必要的位置正确插入逗号,但我只是不知道如何着手实现这一点。

提前感谢所有提供帮助的人!

最佳答案

为了让您了解如何解决这个问题,我已经完成了一个简单的实现。请记住,这只是一个简单的示例:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
long long n = -1234567890;

if ( n < 0 )
cout << '-';

n = abs(n);

for (long long i = 1000000000000; i > 0; i /= 1000) {
if ( n / i <= 0 ) continue;
cout << n / i ;
n = n - ( n / i) * i;
if ( n > 0 )
cout << ',';
}

return 0;
}

http://coliru.stacked-crooked.com/a/150f75db89c46e99

关于c++ - 将逗号格式化为长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com