【问题标题】:Save sub Integer in Array in c++在 C++ 中将子整数保存在数组中
【发布时间】:2014-02-16 18:42:22
【问题描述】:

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

int a,arr[5];

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

假设用户输入值73972 这个值保存在arr 这样。

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

我该怎么做。???

【问题讨论】:

  • 读取它是一个字符串,而不是一个整数。

标签: c++ arrays int


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      首先,整数值可以多于 5 位。

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

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

      类 std::numeric_limits 在标头 &lt;limits&gt; 中声明

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

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

      如果您想使用整数数组,则代码如下所示

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

      【讨论】:

        猜你喜欢
        • 2019-06-12
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-11
        • 2019-10-13
        相关资源
        最近更新 更多