定义一个整型类型的二维数组,并给该二维数组赋初值,按矩阵的形式输出该二维数组的内容?

编写一个程序,定义一个整型类型的二维数组,并给该二维数组赋初值,按矩阵的形式输出该二维数组的内容。然后找出该二维数组的最大值和最小值,并把最大值、最小值的值和行列下标都显示出来。

代码如下:

#include <stdio.h>


int main()

{

    int n,m;

    printf("Input row and col:");

    scanf("%d %d",&n,&m);

    printf("Please input data:\n");

    int data[n][m] = {0};

    for(int i = 0; i < n; i++){

        for(int j =0;j<m;j++){

            scanf("%d",&data[i][j]);

        }

    }


    // 最大值,最小值

    int max = data[0][0];

    int min = data[0][0];

    int i0,j0,i1,j1;

    for(int i = 0; i < n; i++)

    {

        for(int j = 0; j < m;j++)

        {

            if(data[i][j] >= max)

            {

                max = data[i][j];

                i0 = i; j0 = j;

            }

            if(data[i][j] <= min)

            {

                min = data[i][j];

                i1 = i; j1 = j;

            }

            printf("%d\t",data[i][j]);

        }

        printf("\n");

    }


    printf("max = %d; position: (%d,%d)\n",max, i0,j0);

    printf("min = %d; position: (%d,%d)\n",min,i1,j1);


}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-22

#include<iostream>
#include<iomanip>
using namespace std;
const int LEN=5;
void find(int num[][LEN],int *pMax,int *pMaxR, int *pMaxC,int *pMin,int *pMinR,int *pMinC){
*pMax=num[0][0],*pMaxR=0,*pMaxC=0, *pMin=num[0][0],*pMinR=0,*pMinC=0;
for(int r=0;r<LEN;r++){
for(int c=0;c<LEN;c++){
if(num[r][c]<*pMin){
*pMin=num[r][c];
*pMinR=r;
*pMinC=c;
}else if(num[r][c]>*pMax){
*pMax=num[r][c];
*pMaxR=r;
*pMaxC=c;
}
}
}
}
int main() {
int sz[LEN][LEN]={{77,59,14,19,33},{62,48,58,31,7},{90,78,97,91,8},
{87,94,22,37,42},{5,11,79,18,69}};
int max,min,rmax,cmax,rmin,cmin;
cout<<"二维数组"<<endl;
for(int r=0;r<LEN;r++){
for(int c=0;c<LEN;c++){
cout.width(3);
cout<<sz[r][c];
}
cout<<endl;
}
find(sz,&max,&rmax,&cmax,&min,&rmin,&cmin);
cout<<"最大值:"<<max<<" 行下标:"<<rmax<<" 列下标:"<<cmax<<endl;
cout<<"最小值:"<<min<<" 行下标:"<<rmin<<" 列下标:"<<cmin<<endl;
return 0;

}


相似回答