我昨天给做了下,结果还是有点问题,就没有给发上来,等下我回去后再做下试试。本菜鸟技术有限啊。
思路是,1.先求出没行的最大数,并用两个以为数组记录下行号和列号。在求出每列的最小值,并用另外两个一维数组记录下行号和列号。
2.再比较记录的行号和列号,满足条件的就输出。
思路是,1.先求出没行的最大数,并用两个以为数组记录下行号和列号。在求出每列的最小值,并用另外两个一维数组记录下行号和列号。
2.再比较记录的行号和列号,满足条件的就输出。

多看少说,重在学习!

2008-05-15 11:28
2008-05-15 12:41
2008-05-15 12:41
2008-05-15 13:56
2008-05-15 14:43
2008-05-15 14:49
2008-05-15 17:10
程序代码:
#include <stdio.h>
#include <limits.h>
#define M 5
int max(int iarray[][M], int irow, int ilen);
int min(int iarray[][M], int icol, int ilen);
/*main function*/
int main(void)
{
int i, j, irow=0, icol=0, iarray[M][M];
printf("Please a %d*%d array:\n", M, M);
for (i=0; i<M; i++)
{
for(j=0; j<M; j++)
{
scanf("%d", &iarray[i][j]);
}
}
for (i=0; i<M; i++)
{
icol=max(iarray, i, M);
irow=min(iarray, icol, M);
if (irow==i)
{
printf("i=%d; j=%d; value=%d\n", irow, icol, iarray[irow][icol]);
}
}
return 0;
}
/*Find the max number in a row*/
int max(int iarray[][M], int irow, int ilen)
{
int imax=INT_MIN, ipos, i;
for (i=0; i<ilen; i++)
{
if (iarray[irow][i]>=imax)
{
imax=iarray[irow][i];
}
}
for (i=0; i<ilen; i++)
{
if (iarray[irow][i]==imax)
{
ipos=i;
break;
}
}
return ipos;
}
/*Find the min number in a col*/
int min(int iarray[][M], int icol, int ilen)
{
int imin=INT_MAX, ipos, i;
for (i=0; i<ilen; i++)
{
if (iarray[i][icol]<=imin)
{
imin=iarray[i][icol];
}
}
for (i=0; i<ilen; i++)
{
if (iarray[i][icol]==imin)
{
ipos=i;
break;
}
}
return ipos;
}

2008-05-15 22:52

2008-05-15 23:34
2008-05-15 23:36