int 数组 C++ 中的最小值

minimum value in int array C++

我需要在 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;
}

将您的最小变量初始化为 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;
}

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

 int main(int k, int minimum){

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

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

或完全省略任何参数

int main() {
    // ...
}

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

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

我认为你试图用随机数填充数组然后找到最小值。

如果您不打算使用这些参数,请先从主函数中删除它们。您还没有真正调用您在 main 中编写的函数。所以要么把它写在 main 里面,要么调用那个函数。 我建议这样做:

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
    srand(time(NULL));
    int array[5];
    int minimum;

    for(int i = 0; i < 20; i++)
    {
        array[i] = rand() % 100 + 2;
    }

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

    minimum = array[0];

    for(int i = 0; i < 20; i++)
    {
        if(array[i] < minimum)
        {
            minimum = array[i];
        }
    }
    cout << "minumum is : " << minimum;
}