C++ C++;如何在给定范围内的数组中添加数字?
我正在做一个课堂作业,在整理作业时有点困难。我刚刚开始学习数组,不知道如何在数组中获得用户输入 下面是赋值提示:创建一个程序,输入最多100个整数(空格分隔!)并输出它们的和。例如: 12345678910 五十五 这就是我到目前为止所做的(编辑,因为我忘记更改注释):C++ C++;如何在给定范围内的数组中添加数字?,c++,arrays,C++,Arrays,我正在做一个课堂作业,在整理作业时有点困难。我刚刚开始学习数组,不知道如何在数组中获得用户输入 下面是赋值提示:创建一个程序,输入最多100个整数(空格分隔!)并输出它们的和。例如: 12345678910 五十五 这就是我到目前为止所做的(编辑,因为我忘记更改注释): #包括 使用名称空间std; intaddnum(intn); int main(){ int n; //提示用户输入数字 cout>n; cout由于这是一个学习练习,我不会纠正您的代码,但会解释您到目前为止遗漏了什么: 赋
#包括
使用名称空间std;
intaddnum(intn);
int main(){
int n;
//提示用户输入数字
cout>n;
cout由于这是一个学习练习,我不会纠正您的代码,但会解释您到目前为止遗漏了什么:
- 赋值要求读取整数,直到没有更多的输入;您的代码提示用户预先计数,这应该被删除
- 您不需要数组来存储单个数字,因为分配只要求总数。这可以动态计算:读取一个数字,将其添加到
sum
,然后忘记该数字
- 您可以使用下面使用
>
运算符的简单循环读取数字,直到输入结束
以下示例将输入限制为100个数字,或在输入流结束时停止:
int limit = 0;
int nextNumber;
while ((limit++ != 100) && (cin >> nextNumber)) {
... // Process the next number
}
如果您正在从控制台输入程序(而不是向其输入带有数字的文件),并且需要结束输入序列,请在Windows上按Ctrl+z或在UNIX上按Ctrl+d。由于这是一个学习练习,我不会更正您的代码,但请解释您迄今为止错过的内容:
- 赋值要求读取整数,直到没有更多的输入;您的代码提示用户预先计数,这应该被删除
- 您不需要数组来存储单个数字,因为分配只要求总数。这可以动态计算:读取一个数字,将其添加到
sum
,然后忘记该数字
- 您可以使用下面使用
>
运算符的简单循环读取数字,直到输入结束
以下示例将输入限制为100个数字,或在输入流结束时停止:
int limit = 0;
int nextNumber;
while ((limit++ != 100) && (cin >> nextNumber)) {
... // Process the next number
}
如果您要从控制台输入程序(而不是向其输入带有数字的文件),并且需要结束输入序列,请在Windows上按Ctrl+z或在UNIX上按Ctrl+d。为了提供多种答案,std::acculate
非常酷
还是你的情况
int sum = std::accumulate(arr, arr + 99, 0);
另一种功能方法是使用C++17中引入的std::reduce
为了提供各种各样的答案,std::acculate
非常酷
还是你的情况
int sum = std::accumulate(arr, arr + 99, 0);
另一种功能方法是使用C++17中引入的std::reduce
在与教授讨论后,我们获得了一个工作代码!以下是工作代码:
#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;
}
#包括
使用名称空间std;
int main(){
//变量声明
整数和=0,计数=0;
INTC;
//数组声明
int-arr[100]={0};
//提示用户输入数字并添加
cout>arr[i];
c=cin.peek();
总和=总和+arr[i];
//如果用户按enter键,则跳到输出总和而不等待100个值
如果(c=='\n'){
打破
}
}
//输出输入的总和
cout在与教授讨论后,获得了一个工作代码!以下是工作代码:
#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;
}
#包括
使用名称空间std;
int main(){
//变量声明
整数和=0,计数=0;
INTC;
//数组声明
int-arr[100]={0};
//提示用户输入数字并添加
cout>arr[i];
c=cin.peek();
总和=总和+arr[i];
//如果用户按enter键,则跳到输出总和而不等待100个值
如果(c=='\n'){
打破
}
}
//输出输入的总和
cout如果数组最多需要存储100个元素,为什么要将大小设置为99(int-arr[99]={};
)?//声明一个新数组
会显示您的注释,但您根本没有在那里声明任何数组。另外,用户应该在哪里向数组中输入任何内容?我想既然数组从0开始,那么到99将是100个元素?声明数组时括号中的数字是大小,而不是最后的有效值d index.听起来您可以使用arr[]
是在addNum()
中创建的,这意味着函数返回时将删除该索引,所有以前的值都将丢失。请将其声明在funct之外。如果数组需要存储多达100个元素,为什么要将大小设置为99(int arr[99]={};
)?//声明一个新数组
会显示您的注释,但您根本没有在那里声明任何数组。另外,用户应该在哪里向数组中输入任何内容?我想既然数组从0开始,那么到99将是100个元素?声明数组时括号中的数字是大小,而不是最后的有效值d索引。听起来您可以使用一个索引。在addNum()
中创建了arr[]
,这意味着当函数返回时它将被删除,所有以前的值都将丢失。在函数外部声明它。