int数组C ++中的最小值

时间:2015-09-19 16:45:36

标签: c++ arrays minimum

我需要找到int数组中的最小值,但它给出的答案真的很奇怪,因此我甚至无法判断出错误的位置,我真的很感激帮助。这是我写的代码:

#include <stdio.h>
#include <iostream>
#include <cmath>
#include <iomanip>
#include <conio.h>
#include <random>
#include <cstdlib>
#include <ctime>

using namespace std;

int minVert(int minimum, int i) {
    int j, array[20];
    for (j = 0; j < 19; j++) {
        if (array[i] < minimum ) {
            minimum = array[i];
        }
    }
    return minimum;
}

int main(int k, int minimum) {
    int array[20];
    srand(time(NULL));
    for (int i = 0; i < 20; i++) {
        k = rand() % 1000 + 2;
        array[i] = k;
    }
    cout << "Tiek generets masivs..." << endl << "..." << endl << "..." << endl << "..." << endl << endl;
    cout << "Masiva elementi ir: " << endl;
    for (int j = 0; j <20; j++) {
        cout << array[j] << endl;
    }
    cout << endl << "Masiva mazaka vertiba ir: " << endl << minimum << endl << endl;
    cout << "Nospiediet jebkuru taustinu, lai izietu no programmas" << endl;
    _getch();
    return 0;
}

2 个答案:

答案 0 :(得分:3)

 int main(int k, int minimum){

这是非法的。 main()唯一有效的签名是

int main(int argc, char* argv[]) {
    // ...
}  

或完全遗漏任何参数

int main() {
    // ...
}

在第一种情况下,argc包含传递的命令行参数的数量,argv是包含参数的char*指针数组。

请注意argv[0]包含已执行程序本身的名称。

答案 1 :(得分:0)

将您的最小变量初始化为minimum = array[0],以便您的代码变为如下

int minVert(int minimum, int i){

    int j, array[20];
    minimum = array[0];
    for (j = 0; j < 19; j++) {
       if (array[i] < minimum ) {
           minimum = array[i];
       }
    }
    return minimum;
}

如果你想编写一个函数来从数组中找到最小值,最好的做法是编写一个代码,它将引用数组并返回最小值

相关问题