C编程 求救.....

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:09:29
找出二维数组的鞍点,即在该行上最大,在该列上最小,也可能没有鞍点. 用N-S流程图表示 或编程....
我的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