求二维数组的鞍点:即该位置上的元素在该行最大、该列最小,也可能无鞍点。
#include<stdio.h>
#include<ctype.h>
#include <stdlib.h>
int main(void){
int n;
printf("请输入魔方阵n的值:");
scanf("%d",&n) ;
fflush(stdin); //用scanf获取输入值的时候 值还没有立即赋给变量 而是在缓冲区,需要手动fflush刷新一下
int str[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d",&str[i][j]);
}
}
for(int i=0;i<n;i++){
int rs=0;
int k=0;
for(int j=0;j<n;j++){
if(str[i][j]>rs){
rs = str[i][j];
k=j;//可得出str[i][k]为最大值
}
}
int flag =0;
for(int m=0;m<n;m++){
if(str[m][k]<str[i][k]){
flag=1;
continue;
}
}
if(flag==0){
printf("%d\n",str[i][k]);
}
}
if(flag!=0){
printf("no exist");
}
return 0;
}
来源:CSDN
作者:lankongyiqu
链接:https://blog.csdn.net/lankongyiqu/article/details/104158913