【问题标题】:Sum of digits of each elements inside an array of integers整数数组中每个元素的位数之和
【发布时间】:2020-04-23 13:32:11
【问题描述】:

我想计算数组中每个元素的数字总和。问题在于这段代码只计算数组中奇数索引 (1,3,5...) 的总和。在控制台中,它显示偶数索引的一些随机数(0,2,4...)

谁能告诉我是什么问题?

是的,我需要将它用作数组

这里是输出值:

Enter how many numbers you want to calculate sum of digits: 5
Enter those numbers: 12
Enter those numbers: 33
Enter those numbers: 44
Enter those numbers: 22
Enter those numbers: 33
Sum of 0 number is: 4
Sum of 1 number is: 6
Sum of 2 number is: 40
Sum of 3 number is: 4
Sum of 4 number is: 11730950
#include <iostream>


int main(int argc, char** argv) 
{
    int n;
    int temp;
    int pom;

    cout << "Enter how many numbers you want to calculate sum of digits: ";
    cin >> n;

    int numbers[n];
    int sum[n];

    for (int i = 0; i < n; i++)
    {
        cout << "Enter those numbers: ";
        cin >> numbers[i];
    }

    for (int i = 0; i < n; i++)
    {
        while (numbers[i] > 0)
        {
        temp = numbers[i] % 10;
        sum[i]+= temp;
        numbers[i] = numbers[i]/10; 
        }

    }



    for (int i = 0; i < n; i++)
    {
        cout << "Sum of " << i << " number is: " << sum[i] << endl;
    }

    return 0;
}

【问题讨论】:

  • 是什么让你认为它只计算奇数的总和?请引用您正在使用的输入数字、您看到的输出以及您期望的输出。
  • 输入你想计算多少个数字的总和:5 输入这些数字:12 输入这些数字:33 输入这些数字:44 输入这些数字:22 输入这些数字:33 0 数字之和是:4 1 数之和是:6 2 数之和是:40 3 数之和是:4 4 数之和是:11730950
  • @SamedŠkulj 谢谢,cigien 已经给了你答案(如果没有额外的信息,我应该能够发现)。但一般来说,当询问不起作用的代码时,请始终包含您正在测试的数据。

标签: c++ arrays sum digits


【解决方案1】:

你需要初始化sum数组,像这样:

int sum[n] {};

否则,当您第一次从 sum 的元素中读取时,您的行为未定义。

此外,可变长度数组不是标准 c++ 的一部分。如果您在编译时不知道数组的大小,只需使用std::vector

如果您绝对必须使用数组,那么您需要动态分配它,如下所示:

int * arr = new int[n]{};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多