如何最有效地从用户那里获取10个不同的数字,将它们添加到数组中,然后输出所有这些数字?

时间:2016-03-25 05:03:11

标签: c++ arrays input

C ++新手,我正在尝试创建一个包含10个不同数字的程序,它会将所有这些数字添加到数组列表中,并在最后打印出来。

我的代码:(不起作用)

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;

int main() 
{


int numbers[10];
int input;

cout << "Please enter ten numbers" << endl;

for(int i=0;i<10;i++){

   cin >> input;

   int numbers[i] = numbers + input;


    }

 cout << numbers;

}

当我运行这个并输入所有十个数字的全1时,我希望得到一个输出,如1,1,1,1,1,1,1,1,1,1

但我得到了0x7d88afc45630,这很奇怪,我不确定为什么。我认为这与我如何将数字添加到数组列表中有关,我甚至不知道该怎么做。我也希望能够返回列表中最大和最小的值,但我需要先解决这个问题。

2 个答案:

答案 0 :(得分:2)

int numbers[i] = numbers + input;

它将数字内存所在的地址转换为整数并将其添加到输入中。

你的意思是

numbers[i] = input;

最重要的是,cout << numbers只打印出数字的内存位置。

您可能需要以下内容:

for (int i = 0; i < 10; i++) {
    cout << numbers[i] << endl;
}

答案 1 :(得分:0)

更改了您使用的输出变量,因为您不需要数组。此外,如果已经声明了该变量,则在为变量名赋值时,不需要将数据类型放在变量名之前。请参阅以下修改后的代码:

  int sum = 0;
  :
    sum += input;
  :
  cout << sum;

如果您的意思是&#34;添加到数组&#34;将用户输入值放入数组,只需更改这些部分

  int numbers[10];
  :
    numbers[i] = input;
  :
  for(int i=0;i<10;i++)
  {
    cout << numbers[i] << endl;
  }

Open with -> Web Browser