日期:2023-11-25
一:一些在程序设计时的个人考量
(1)既然一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小,那么考虑分开比较的话,会涉及到多行多列的对比干扰,所以分成行之间比较和列之间比较最为可行。
(2)思考比较的次数,因为鞍点的唯一性可阐述为有即输出,但是单一外循环造成了只能单项定位。
(3)考虑到为什么定行和定列的变化,主要记录即矩阵初始值的变化,如果是不定行列的矩阵,就考虑到矩阵在维度上的放缩。
(4)可能涉及到重复导入或是输出在问题,考虑是否需要筛查重复元素。
(5)涉及了循环嵌套和判断语句,只有设计好判断位点和标记位置才可能确定判断语句中嵌套循环语句的起始位点和执行语句的下标。
二、代码即运算过程
#include<stdio.h>
int main(){
int a[6][6],i,j,k,n,b[6];
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++){
b[i]=a[i][0];
for(j=0;j<n;j++){
if(a[i][j]>b[i])b[i]=a[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(a[i][j]==b[i]){
for(k=0;k<n;k++){
if(a[k][j]<a[i][j])
break;
}
if(k>=n){
printf("%d %d",i,j);
return 0;
}
}
}
}
printf("NONE");
return 0;
}