要求:
1.自定义一个矩阵显示函数,将初始化的二维数组(元素值0~999)以矩阵形式显示出来。
2.自定义一个求矩阵中最大数的函数,并输出最大值以及所在的行列,输出形式a[x][y]=d回车,a是数组名,x、y是最大值下标,d是最大值。
代码文本:
#include "stdio.h"
#define N 5
void dispmatrix(int (*p)[N]){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;printf("%4d",p[i][j++]));
putchar('\n');
}
}
void findmax(int p[][N]){
int i,j,mi,mj;
for(mi=mj=i=0;i<N;i++)
for(j=0;j<N;j++)
if(p[mi][mj]<p[i][j])
mi=i,mj=j;
printf("The MAX is a[%d][%d]=%d\n",mi,mj,p[mi][mj]);
}
int main(int argc,char *argv[]){
int a[N][N]={41,467,334,500,464,145,705,724,169,391,716,895,478,
281,961,827,995,604,163,421,358,718,382,902,491};
printf("Matrix is as follows:\n");
dispmatrix(a);
printf("\n");
findmax(a);
return 0;
}
供参考。
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
int mat[5][5];
int mat_sort[25];
int main(){
int t=0;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>mat[i][j];
mat_sort[t]=mat[i][j];
t++;
}
}
//输出
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
//得到最大值
sort(mat_sort,mat_sort+25,greater<int>());
int ans=mat_sort[0];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(mat[i][j]==ans){
cout<<"a["<<i<<"]["<<j<<"]="<<ans<<endl;
}
}
}
return 0;
}