C++ int数组C+中的最小值+;
我需要在int数组中找到最小值,但它给出的答案非常奇怪,因此我甚至无法判断错误在哪里,我非常感谢您的帮助。以下是我编写的代码: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 <
#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)
;-)@ThomasMatthewsvoid*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;
}