思路:先把矩阵的第一个数赋值给最大值和最小值,接着遍历整个矩阵依次和最大值和最小值比较,更新最大值和最小值,最后输出最大值和最小值。
参考代码:
#include "stdio.h"int main()
{
int a[2][3]={{5,1,2},{6,9,4}},max,min,i,j
max=min=a[0][0]
for(i=0i<2i++)
for(j=0j<3j++){
if(a[i][j]>max) max=a[i][j]
if(a[i][j]<min) min=a[i][j]
}
printf("最大值为:%d,最小值为:%d\n",max,min)
}
/*
运行结果:
最大值为:9,最小值为:1
*/
若用 int *p 传递, max=**p语法有错,用 max= *p 即可。修改如下。(用 int *p 传递, 矩阵也用 一维 存放较方便。)
#include <stdio.h>
void zxw(int *p,int a,int b)
{ int i,j,max
max=p[0]
for(i=0i<ai++)
for(j=0j<bj++) if( p[i*b+j]>max) max= p[i*b+j]
printf("%d\n",max)
}
int main()
{
int *x
int n,m,a,b
int i,j
scanf("%d",&n)
while(n--)
{
scanf("%d",&a)
scanf("%d",&b)
x = (int *) malloc(sizeof(float)*a*b)
for(i=0i<ai++){for(j=0j<bj++) scanf("%d",&x[i*b+j])}
zxw(x,a,b)
free(x)
}
}
#include <stdio.h>void main(){
int i,j,m,n,max,a[100][100]
scanf("%d%d",&m,&n)
for(i=0i<mi++)
for(j=0j<nj++)
scanf("%d",&a[i][j])
max=a[0][0]
for(i=0i<mi++)
for(j=0j<nj++)
if(max<a[i][j]) max=a[i][j]
printf("\n%d",max)
}
运行示例: