这是我第一次发布问题。我希望在一项非常古老的计算机科学作业上得到一些帮助,但我一直没有时间完成它。我不再上课了,只是想看看如何解决这个问题。
读入一个整数(任何有效的 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;
}
关于c++ - 将逗号格式化为长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071775/