3)有无这样的学生:在本小组中在线学习时长最长但同时又在所在竖列在线学习时长又最短。(类似鞍点问题)
如有,输出该生位置(行,列);否则,输出“no find!”
分析:
遍历所有行(i)
{
求第i行的最大数(记下来他所在的列);
判断该生在所在列是否最小
如是,输出该生的(行,列),同时修改找到标志。
}
判断找到标志,如标志没有找到,输出“no find!”
#include <stdio.h>
int main(){
int hour[5][6]={{65,73,89,91,87,69},{85,77,59,91,79,86},{79,80,94,91,87,92},{70,98,68,91,88,93},{75,83,92,90,78,81}};
int max,i,j,k,flag=0;
//统计有无满足条件的学生
for(i=0;i<5;i++)
{
//求第i行的最大数(记下来他所在的列);
max=hour[i][0];
for(j=1;j<6;j++)
if (hour[i][j]>max) {max=hour[i][j];k=j;}
//判断该生在所在列是否最小
for(j=0;j<5;j++) //j表示行
if (hour[j][k]<max) break;
if (j>=5) {flag=1;printf("%d,%d\n",i,k);}
}
if (flag==0) printf("no find!\n");
return 0; }
上一页
[1]
[2]
[3]