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