首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组解决的一个有关问题

2012-04-05 
数组解决的一个问题输入一个正整数(1n6)和n阶矩阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最

数组解决的一个问题
输入一个正整数(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;} 

热点排行