在c ++中将子整数保存在Array中

时间:2014-02-16 18:42:22

标签: c++ arrays int

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

int a,arr[5];

cout<<"Enter a Number  ";
cin >> a;

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

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

我该怎么做。???

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

读取一个字符串并将其分成数字。

答案 2 :(得分:0)

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

您可以使用表达式

获取int类型的对象可以包含的位数
std::numeric limits<int>::digits10 + 1

class 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;
}