C语言问题,谢谢哥哥姐姐帮忙

来源:百度知道 编辑:UC知道 时间:2024/07/12 20:34:49
用TC解答,谢谢~~~
问题是请编制程序,利用行指针,找出二维数组a[M][N]每一行中的最大值,然后从中找出最小值min.
我已经知道一种方法了。。。
# define M 5
# define N 5
main()
{ int s[M],i,j,min;
static int a[M][N],(*p)[N]=a;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",p[i]+j);
for(i=0;i<M;i++)
{s[i]=p[i][0];
for(j=1;j<N;j++)
if(s[i]<p[i][j])
s[i]=p[i][j];
}
min=s[0];
for(i=1;i<M;i++)
if(min>s[i])
min=s[i];
printf("Min=%d\n",min);
}
除此之外,希望哥哥姐姐提供另一种解法,谢谢~~~

#include<stdio.h>
#define M 5
#define N 5
int main()
{
int i, j, max, min;
static int a[M][N], (*p)[N]=a;
for(i=0; i<M; i++)
for(j=0; j<N; j++)
scanf("%d",&a[i][j]);
for(i=0; i<M; i++)
{
max = *(*(p+i)+0);
for(j=0; j<N; j++)
{
if(max < *(*(p+i)+j))
max = *(*(p+i)+j);
}
if(i==0)
min = max;
else if(min>max)
min = max;
}
printf("%d\n",min);
return 0;
}