C编程 求救.....
来源:百度知道 编辑:UC知道 时间:2024/05/23 00:09:29
我的QQ58768537
/*鞍点行最大,列最小*/
int Row,Colum;
void main(){
int a[3][4]={
{ 1, 15, 3, 4},
{ 9, 11, 7, 6},
{-10, 12, -5, 2}
};
int max,i,j,min;
max=a[0][0]; /*求行上最大值*/
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(a[i][j]>max){
max=a[i][j];
Row=i;
Colum=j;
}
}
for(i=0;i<3;i++){ /*判断行上的最大值是不是列上的最小值*/
if(a[i][Colum]<max)
min=a[i][Colum];
}
if(min==max)
printf("%d",max);
}
getch();
}
--------------------------------------------------------------------------------
1. 第二重循环中使用了i这个第一重循环变量
2. max, colum在外层循环中没有初始化(max会一直保持数组中最大的值)
3. 查找min时,没有初始化(如果恰好是鞍点,min值无定义)
有可能存在多个鞍点,要找出全部的鞍点,可以用如下方法:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define M