我需要找到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;
}
答案 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;
}
如果你想编写一个函数来从数组中找到最小值,最好的做法是编写一个代码,它将引用数组并返回最小值