将用户输入数据汇总在一起

时间:2017-06-30 10:06:42

标签: c++

我试图将用户输入数字加在一起,但是它返回了一些超大数字。如果有人可以提供帮助那就太棒了,谢谢!

pod update

4 个答案:

答案 0 :(得分:3)

您正在从数组值计算总和: sum = sum + str[a];,但在获取输入值时,您不会填充数组。实际上在这种情况下,你不需要一个数组来计算总和。您可以在获取输入值时计算总和,如下所示:

int main() {
    int a;
    int attemptno = 1;
    int x;
    int sum = 0;

    for(int a=0;a<10;a++){
        cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
        cin >> x;
        sum = sum + x;
    }

    cout << "Total number of pancakes eaten is: " << sum << endl;
    return 0;
}

答案 1 :(得分:0)

你永远不会设置str的元素,所以`str'是未初始化的。

sum = sum + str[a];

是未定义的行为。

答案 2 :(得分:0)

str[]的元素永远不会被初始化,a也是如此,并且在初始化之前读取其内容的行为是 undefined 。你必须有一个 flacid编译器来生成一个程序。

为什么不使用

std::vector<int> str(a);

相反,将a设置为合理的东西?

然后你可以使用花哨的

#include <numeric>
sum = std::accumulate(str.begin(), str.end(), 0);

评估总数。

答案 3 :(得分:0)

您可能打算这样做:

#include<iostream>

using namespace std;

int main()
{
  //      int a;    // << deleted
  int attemptno = 1;
  int str[10];     // << changed array of 10 elements
  int x;

  for (int a = 0; a<10; a++) {
    cout << "Person " << attemptno++ << ", how many pancakes did you have for breakfast? " << endl;
    cin >> x;
    str[a] = x;    // << added
  }

  int sum = 0;

  for (int a = 0; a < 10; a++)  // << added for loop
  {
    sum = sum + str[a];
  }

  cout << "Total number of pancakes eaten is: " << sum << endl;

  return 0;
} 

有关我对原始程序所做的修改,请参阅<< added条评论。 这个解决方案仍然很幼稚,可以在C ++中以更优雅的方式完成。