数组解决的一个问题
输入一个正整数(1<=n<=6)和n阶矩阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最大,该列上最小)
就输出它的下表;否则输出 NO(设a中最多一个鞍点)
第一次运行:
Input n: 4
Input array:
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
a[2][1]=6
第二次运行:
Inupt n: 2
Input array:
1 7
4 1
NO
尽量只用 数组 以及 前面的知识点解决。。
[解决办法]
- C/C++ code
#include<stdio.h>#define MAX 6int main(){ int a[MAX][MAX],i,j,m; int n; printf("Input n(n<=6): "); scanf("%d", &n); printf("Input array:\n"); for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { scanf("%d", &a[i][j]); } } printf("输入的矩阵为:\n"); for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { printf("%d\t", a[i][j]); } printf("\n"); } for(i = 0; i < n; i++) { //查找行最大元素 m = 0; for(j = 1; j < n; j++) { if(a[i][j] > a[i][m]) { m = j; } } //判断行最大元素是不是列最小元素 for(j = 0; j < n; j++) { if(a[j][m] < a[i][m]) { break; } } if(j == n) { printf("a[%d][%d]=%d\n", i, m, a[i][m]); break; } } if(i == n) { printf("NO\n"); } return 0;}