【发布时间】:2018-08-01 23:54:24
【问题描述】:
处理需要我输入一些函数的作业(查找数组中随机数的最大值/最小值、总和和平均值),我已经设法完成了所有这些,但对于最小值我是得到 -2145379808 的值。我不确定我在哪里搞砸了,我将不胜感激。 到目前为止的代码:
#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;
int main(int argc, char** argv) {
{
cout << "Enter array size " << endl;
}
float avg;
float sum;
int size;
cin >> size;
int array[size];
int max = array [0];
int min = array [0];
srand((unsigned)time(NULL));
for (int i = 1; i < size + 1; i++)
{
array[i] = 1+rand()%100 ;
sum += array[i];
cout << "number " << i << " = "<< array[i] << endl;
}
for (int x = 1; x < size; x++){
if (array[x] > max){
max = array[x];
}
if (array[x] < min){
min = array[x];
}
}
cout << "\nmax = " << max << endl;
cout << "\nmin = " << min << endl;
cout << "\nsum = "<< sum << endl;
cout << "\navg = " << sum / size << endl;
return 0;
}
【问题讨论】:
-
你没有初始化你的变量。始终初始化您的变量。你落后了。索引越界是未定义的。
-
我认为 C++ 的乐趣在于使用广受赞誉的 STL。请参阅标题为
Second Version的部分之后的标题为Example的部分... en.cppreference.com/w/cpp/algorithm/minmax_element -
cin >> size; int array[size];- 这不是标准的 C++,而且永远不会(有充分的理由)。使用std::vector<int> -
您可以只使用std::nth_element 并在两行可重新存储的代码中获取最小值和最大值。或者更好的是,使用std::minmax。