我试图用c ++编写一个控制台应用程序,让用户输入一系列数字,程序应该得到所有数字的总和,平均数,最大和第二大数。 例如:
输入几个数字:10 12 -5 20 -2 15 0
总和= 50
平均值= 8.3
最大数量= 20
第二大= 15
#include<iostream>
#include<conio.h>
using namespace std;
int main( )
{
int a[5];
cout << "We are going to find the max value"<< endl;
int x;
for (x=0; x<5; x++)
{
cout<<"insert values"<<x+1<<endl;
cin>>a[x];
}
int max;
int min;
max = a[0];
min = a[0];
int e=0;
while (e<5)
{
if (a[e]>max)
{
max = a[e];
}
e++;
}
cout<<"Max value in the array is.."<<max<<endl;
getch();
return 0;
}
这是我目前的进展。 虽然,我有一些担忧。 如何让用户输入示例中的数字并将它们存储在未知大小的数组中?
在等待这个答案的时候,我会试着找出一种计算平均值,总和和第二大的方法:)
谢谢!
答案 0 :(得分:1)
要输入未知数量的元素,请使用std::vector
输入
直到用户告诉您停止,通常是通过输入文件结尾:
std::vector<int> values;
int i;
while ( std::cin >> i ) {
values.push_back( i ) ;
}
如果您正在寻找其他类型的信号,那么您就是其中之一
可能必须逐行读取,检查行是否包含
你的最终标准,然后使用std::istringstream
来解析
整数。
对于其余部分:它可能与练习的目标不符,但是
标准库有几个可以制作东西的功能
更简单:std::max_element
,例如,或
std::accumulate
。并且<conio.h>
不是很便携,而且是
在支持它的系统上弃用。
答案 1 :(得分:0)
如果您无法使用std::vector
,则可能需要了解dynamic memory allocation。
int *a = new int[size];