求一个二维数组的行和列为最小
代码如下//解析看注释即可
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 }

浙公网安备 33010602011771号