C++ int数组C+中的最小值+;

C++ int数组C+中的最小值+;,c++,arrays,minimum,C++,Arrays,Minimum,我需要在int数组中找到最小值,但它给出的答案非常奇怪,因此我甚至无法判断错误在哪里,我非常感谢您的帮助。以下是我编写的代码: #include <stdio.h> #include <iostream> #include <cmath> #include <iomanip> #include <conio.h> #include <random> #include <cstdlib> #include <

我需要在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;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int最小值(int最小值,int i){
int j,数组[20];
对于(j=0;j<19;j++){
if(数组[i]<最小值){
最小值=数组[i];
}
}
返回最小值;
}
int main(int k,int minimum){
int数组[20];
srand(时间(空));
对于(int i=0;i<20;i++){
k=rand()%1000+2;
数组[i]=k;
}

cout将最小变量初始化为
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;
}
int最小值(int最小值,int i){
int j,数组[20];
最小值=数组[0];
对于(j=0;j<19;j++){
if(数组[i]<最小值){
最小值=数组[i];
}
}
返回最小值;
}
如果你想写一个函数,从数组中找出最小值,最好的做法是写一个代码,引用数组并返回最小值

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

int main(int argc, char* argv[]) {
    // ...
}  
或者完全忽略任何参数

int main() {
    // ...
}
在第一种情况下,
argc
包含传递的命令行参数的数量,
argv
是一个包含参数的
char*
指针数组


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

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

如果您不打算使用这些参数,请首先从主函数中删除这些参数。您还没有真正调用在主函数中编写的函数。因此,要么在主函数中编写这些参数,要么调用该函数。 我建议:

#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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
srand(时间(空));
int数组[5];
最小整数;
对于(int i=0;i<20;i++)
{
数组[i]=rand()%100+2;
}
对于(int i=0;i<20;i++)
{

那么你收到的结果是什么呢?请把它和输入一起发布。我看不到
minimum
的任何初始化,为什么当你的数组有20个元素时,你的第一个
for
循环中有
j<19
?哦,如果你把
minimum
传递给main???!main的参数应该是
int argc,char**argv
。如果你想将minimum作为参数传递给你的程序,你想使用argv&argc,如图所示,结果是随机的,数组的内容也是随机生成的,结果之一是:2653742haha,
致命错误:“找不到conio.h”文件
。我需要在主函数之外的数组中计算最小值,即t现在是我最大的问题,其中包括:感谢您减少包含文件的数量。希望OP能认识到这一点。@Royal:将最后一个
for
循环移动到一个单独的函数中。传递数组和元素数。返回最小值。为什么数组内容为5?“int array[5];”嗨,挑剔的家伙:
main
至少有两个有效的签名。你没有指定的是
int main(void)
;-)@ThomasMatthews
void*argv
bool**argv
也可能有效,对吗?那
int**argv
呢?@theoden不是认真的!你在胡说八道!@πῥεῖ, 为什么不呢?它只是指定了容器类型。@theoden这是标准规范的问题,而不是用户喜欢指定的内容!
#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;
}