【问题标题】:Converting a number into an array of digits将数字转换为数字数组
【发布时间】:2017-11-10 02:44:48
【问题描述】:

我在将数字转换为数字数组时遇到了一点问题。

#include <iostream>

using namespace std;

int main()
{
    int a[11];
    int number;
    cin >> number;
    for (int i = 10; i >= 0; i--)
    {
        a[i] =  number%10;
        number = number/10;
    }
for (int i = 0; i < 11; i++)
        cout << a[i];
cout << endl;
} 

我没有得到我输入的数字,而是得到了一些随机数字。当我输入的数字小于或等于 9 位时,不会出现此问题。

【问题讨论】:

  • 你考虑过 ints 的最大尺寸吗?
  • 你说得对,int size 不够,谢谢 :)

标签: arrays loops integer modulo


【解决方案1】:

我会建议初始化数组(这是一个很好的做法)做类似的事情:

int a[11] = {-1};

如果您在打印数组的每个元素后添加一个换行符,那么它将变得有意义且更易于阅读......

您的代码实际上按预期工作

#include <iostream>

using namespace std;

int main()
{
    int a[11] = {-1};
    int number;
    cin >> number;
    for (int i = 10; i >= 0; i--)
    {

        a[i] = number % 10;
        number = number / 10;
    }
    for (int i = 0; i < 11; i++)
        cout <<"@[" <<i<<"]: "<< a[i] <<endl;
    cin.get();
}

对于像 432

这样的输入

你得到输出:

【讨论】:

  • 我知道,但是问题出现在大于 9 位的数字上 - 现在我知道 int "number" 大小太小了。谢谢您的帮助。 :)
  • 嗨@Paweł...感谢您的反馈...请让我检查一下!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多