我正在为课堂作业工作,并且很难将它组合在一起。我刚刚开始学习数组,并且不确定如何在数组中获得用户输入。
这是赋值提示:创建一个程序,输入最多100个整数(空格分隔!)并输出它们的总和。例如:
1 2 3 4 5 6 7 8 9 10 55
这是我到目前为止(编辑,因为我忘了更改评论):
@Mapping
答案 0 :(得分:4)
由于这是一项学习练习,我不会更正你的代码,但要解释你到目前为止所遗漏的内容:
sum
,然后忘记该数字。>>
运算符的简单循环读取数字,直到输入结束。以下示例将输入限制为100个数字,或者在输入流结束时停止:
int limit = 0;
int nextNumber;
while ((limit++ != 100) && (cin >> nextNumber)) {
... // Process the next number
}
如果您从控制台提供程序输入(而不是输入带有数字的文件)并且您需要结束输入序列,请按 Ctrl + z 在Windows上或在UNIX上 Ctrl + d 。
答案 1 :(得分:1)
为了提供各种答案,std::accumulate
非常酷。
http://en.cppreference.com/w/cpp/algorithm/accumulate
int sum = std::accumulate(v.begin(), v.end(), 0);
或在你的情况下
int sum = std::accumulate(arr, arr + 99, 0);
另一种功能方法是使用C ++ 17中引入的std::reduce
答案 2 :(得分:0)
在与教授谈论之后能够得到一个有效的代码!这是工作代码:
#include <iostream>
using namespace std;
int main() {
// variable declarations
int sum = 0, count = 0;
int c;
// array declaration
int arr[100] = { 0 };
// prompt user to input numbers & add
cout << "Please enter in values to add together: ";
for (int i = 0; i < 100; i++) {
cin >> arr[i];
c = cin.peek();
sum = sum + arr[i];
// if user presses enter, skip to outputting sum without waiting for 100 values
if (c == '\n'){
break;
}
}
// output the sum of input
cout << sum;
// pause and exit
getchar();
getchar();
return 0;
}