求N阶矩阵鞍点的位置和个数

    xiaoxiao2023-10-28  160

    题目 求N阶矩阵鞍点的位置和个数 以四阶矩阵为例解题思路 鞍点是一个数在所在行中是最大值,在所在列中是最小值,所以我先求每行中最大值的数,再验证这个数在其列是不是最小值。 #include <stdio.h> #define N 5 void main() { //定义一个N阶矩阵以及需要的相关变量// int a[N][N]; int i,j,m,k=0,n=0,temp; //输入N阶矩阵内元素的值// for(i=0;i<N;i++) for(j=0;j<N;j++) scanf_s("%d",&a[i][j]); for(i=0;i<N;i++) { temp=a[i][0];//初定义temp为每行中第一个数// m=0;//m是每行中最大值的数所在的列值// for(j=1;j<N;j++) { if(temp<a[i][j]) temp=a[i][j];//寻找每行的最大值// m=j;//将列值赋给m// } for(j=0;j<N;j++) if(temp>a[i][j])//验证该数是否为该列的最小值// k++; if(k==0) { printf("(%d,%d)\n",i,m);//如果确实是,输出该数的行数和列数// n++;//每多一个鞍点,n+1// } k=0; } printf("总个数为%d\n",n);//输出该矩阵的鞍点的总个数// }

    总结:做题前要有具体的思路,要不然调试上百次也不一定对,思路要清晰,熟练使用数组,for循环,if语句。

    最新回复(0)