在 c++ 的数组中保存子整数

Save sub Integer in Array in c++

本文关键字:保存 整数 数组 c++      更新时间:2023-10-16

我想在数组中保存一个整数类型值。
这是一个代码。

int a,arr[5];
cout<<"Enter a Number  ";
cin >> a;

假设用户输入值73972此值保存arr如下所示。

arr[0] = 7;
arr[1] = 3;
.. .. .. ..
.. .. .. ..
arr[4] = 2;

我该怎么做???

在数组上反向迭代,每次将数字除以 10 并将提醒存储在数组上。

for(int i=4; i>=0; i--)
{
    arr[i] = a % 10;
    a /= 10;
}

读取字符串并将其分解为数字。

首先,整数值可以超过 5 位。

可以使用表达式获取 int 类型的对象可以包含的位数

std::numeric limits<int>::digits10 + 1

类 std::numeric_limits 在标头 <limits> 中声明

还要考虑到,如果一个数字包含的数字少于数组的大小,那么你需要一些标记来确定数组中数字的结尾。

我建议您使用字符数组而不是整数数组,其中终止零将确定数字的结尾。

如果要使用整数数组,则代码可能如下所示

#include <iostream>
#include <algorithm>
#include <limits>
int main()
{
   int arr[std::numeric_limits<int>::digits10 + 1];
   int a;
   std::cout << "Enter a Number  ";
   std::cin >> a;
   int n = 0;
   do
   {
      arr[n++] = a % 10;
   } while ( a /= 10 );
   std::reverse( arr, arr + n );
   for ( int i = 0; i < n; i++ ) std::cout << arr[i] << ' ';
   std::cout << std::endl;
}