在随机数组中查找最小值和最大值

Žan*_*ila 2 c++ arrays max min

处理需要我输入一些函数的赋值(查找数组中随机数的最大值/最小值,总和和平均值),我已经设法完成所有这些但是对于最小值我得到了一个值-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;
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 7

设置maxmin未初始化的元素array永远不会结束.在此注释中,您还需要初始化sum.您也可以删除,avg因为您不使用它.

一旦你知道它是什么,你需要设置maxmin第一个元素array.好听的,你可以设置maxstd::numeric_limits<int>::min()minstd::numeric_limits<int>::max().

还需要注意的是边界arrayarray[0]array[size - 1].因此,您需要重新访问循环中的索引.

然后,一旦你有它工作,bin它,并使用std::vector<int>,例如minmax_element:http://en.cppreference.com/w/cpp/algorithm/minmax_element

  • 有时候我很难在工作中修理一些东西,所以在这里修理一些东西总是很愉快的;) (2认同)