我试图将用户输入数字加在一起,但是它返回了一些超大数字。如果有人可以提供帮助那就太棒了,谢谢!
pod update
答案 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 ++中以更优雅的方式完成。