求一个二维数组的行和列为最小

 

 代码如下//解析看注释即可

 1 #include<stdio.h>
 2 int main(){
 3     int a[5][5]={{11,4,2,7,8},{5,9,23,1,25},{3,22,21,18,15},{17,16,24,12,6},{13,10,19,20,14}};//定义如图所示的二维数组 
 4     
 5     int i,j,k;
 6     for(int j=0;j<5;j++){
 7         int flag=1;
 8         int m=0,n=0;
 9         k=a[0][j];//先定住一列,进行行循环 ,遍历出一列上最小值 
10         for(int i=1;i<5;i++){
11             if(a[i][j]<k){//只要这一列上有比初值小的,即把小值赋给k 
12                 k=a[i][j];
13                 m=i;//把遍历出的最小值的行项赋给m 
14                 n=j;//把遍历出的最小值的列项赋给n 
15             }
16         }
17         for(int j=0;j<5;j++){
18             if(a[m][j]<k){//模拟上一个for循环找到的值为k,定住这一行进行列循环判断,只要不是这一行最小 
19                 flag=0;//把0赋给flag 
20             }
21         }
22         if(flag)//仅输出flag为真的数组 
23         printf("%d(%d,%d)",k,m+1,n+1);
24     }
25     return 0;
26 }

 

posted @ 2022-09-09 17:10  码羊  阅读(60)  评论(0)    收藏  举报