C++ 从二维数组中查找最小值和最大值
我的问题是如何从随机数数组中找到最小值和最大值?我尝试了很多不同的逻辑,我已经通过下面提到的这些链接,但没有得到结果,任何指导将不胜感激C++ 从二维数组中查找最小值和最大值,c++,multidimensional-array,C++,Multidimensional Array,我的问题是如何从随机数数组中找到最小值和最大值?我尝试了很多不同的逻辑,我已经通过下面提到的这些链接,但没有得到结果,任何指导将不胜感激 #包括 #包括 #包括 void populateArray(); void displayArray(); void findMaxMinNumber(int[5][5]); main(){ 系统(“cls”); int行,列=5; displayArray(); } void populateArray(){ 整数随机数; int minMax[5][
#包括
#包括
#包括
void populateArray();
void displayArray();
void findMaxMinNumber(int[5][5]);
main(){
系统(“cls”);
int行,列=5;
displayArray();
}
void populateArray(){
整数随机数;
int minMax[5][5];
对于(int rowCount=0;rowCount<5;rowCount++){
对于(int columnCount=0;columnCount<5;columnCount++){
randomNumber=rand()%100+1;
coutvoid findMaxMinNumber(int arr[5][5]){
int*start=&arr[0][0];
coutvoid fillUpArray(int newArray[5][5])
{
对于(int i=0;i<5;++i)
{
对于(int j=0;j<5;++j)
{
int randomNumber=rand()%100+1;
printf(“随机数[%d][%d]:%d\n”,i,j,随机数);
newArray[i][j]=随机数;
}
}
}
void printmimummax(int myArray[5][5])
{
int minimum=myArray[0][0];
int max=myArray[0][0];
对于(int i=0;i<5;++i)
{
对于(int j=0;j<5;++j)
{
if(myArray[i][j]<最小值)
{
最小值=myArray[i][j];
}
如果(myArray[i][j]>最大值)
{
最大值=myArray[i][j];
}
}
}
printf(“最小值:%d\n”,最小值);
printf(“最大值:%d\n”,最大值);
}
int main()
{
int minMax[5][5];
填充阵列(最小最大值);
打印最小最大值(最小最大值);
返回0;
}
我在编程方面处于非常初级的水平,我没有使用过指针,也没有使用过std::之前,我对它没有概念。我试图找到使用阵列的方法。顺便说一句,这里也是。你为什么要增加这四个“索引”变量?为什么它们不都从0
开始?最后一件事,修复缩进。增加这些变量背后的逻辑是将当前索引值与数组的每个下一个索引值匹配,以确定它是最大值还是最小值。你已经在用i
和j
这样做了。我不明白我在哪里犯了错误目前,i&j是当前索引,而rowMax、colMax等是当前索引的下一个索引
#include<iostream>
#include<cstdlib>
#include<conio.h>
void populateArray();
void displayArray();
void findMaxMinNumber(int[5][5]);
main(){
system("cls");
int rows,columns = 5;
displayArray();
}
void populateArray(){
int randomNumber;
int minMax[5][5];
for(int rowCount = 0; rowCount < 5; rowCount++){
for(int columnCount = 0; columnCount < 5; columnCount++){
randomNumber = rand() % 100 + 1;
cout<<randomNumber;
minMax[rowCount][columnCount] = randomNumber;
if(randomNumber < 10){
cout<<" ";
}
else if(randomNumber >= 10){
cout<<" ";
}
}
cout<<endl;
}
findMaxMinNumber(minMax);
}
void displayArray(){
cout<<"Displaying array's data..."<<endl;
cout<<"------------------------------"<<endl;
populateArray();
}
void findMaxMinNumber(int arr[5][5]){
int rowMax = 0;
int colMax = 1;
int rowMin = 0;
int colMin = 1;
cout<<endl;
for(int i = 0; i < 5; i++){
rowMax++;
rowMin++;
for(int j = 0; j < 5; j++){
if(arr[i][j] < arr[rowMax][colMax]){
//cout<<endl<<arr[i][j];
rowMax = i;
colMax = j;
}
if(arr[i][j] > arr[rowMin][colMin]){
rowMin = i;
colMin = j;
}
colMax++;
colMin++;
}
}
cout<<endl<<"The max is :"<<arr[rowMax][colMax];
cout<<endl<<"The min is :"<<arr[rowMin][colMin];
}
void findMaxMinNumber(int arr[5][5]){
int* start = &arr[0][0];
cout<<endl<<"The max is :" << *std::max_element(start, start + 5*5);
cout<<endl<<"The min is :" << *std::min_element(start, start + 5*5);
}
void fillUpArray(int newArray[5][5])
{
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 5; ++j)
{
int randomNumber = rand() % 100 + 1;
printf("Random number[%d][%d]: %d\n", i, j, randomNumber);
newArray[i][j] = randomNumber;
}
}
}
void printMinimumMaximum(int myArray[5][5])
{
int minimum = myArray[0][0];
int maximum = myArray[0][0];
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 5; ++j)
{
if (myArray[i][j] < minimum)
{
minimum = myArray[i][j];
}
if (myArray[i][j] > maximum)
{
maximum = myArray[i][j];
}
}
}
printf("Minimum: %d\n", minimum);
printf("Maximum: %d\n", maximum);
}
int main()
{
int minMax[5][5];
fillUpArray(minMax);
printMinimumMaximum(minMax);
return 0;
}