c语言寻找矩阵鞍点

12人阅读 评论(0) 收藏 举报
分类:
  • 寻找一个方形矩阵的鞍点(该位置上的元素在该行最大,在该列最小)

  • 先找出矩阵每一行的最大值,在依次判断该行最大值是否为该列最小值。

#include<stdio.h>
int main()
{
 int a[5][5];
 int b[5];
 int i,j,t;
 int flag = 0;//用于标示数组b中是否存在不是-1的元素
 printf("输入一个5*5二维数组:\n");
 for(i=0;i<5;i++){
       scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
      }

 //找出每一行中最大的元素,并把列号存在数组b中
 for(i=0;i<5;i++) {
     //默认每一行第一个元素为最大值
     b[i] = a[i][0];
     //引入一个循环变量t用来记录最大值的列号
     t = 0;
     //把最大值的数值暂时存在b中,把最大值的列号暂时存在t中
      for(j=0;j<5;j++){
            if(b[i]<a[i][j]){
                  b[i] = a[i][j];
                  t = j;
                 }
         }
     //如果一行中有两个相同的最大值,t等于-1
      for(j=0;j<5;j++){
            if(b[i]==a[i][j]&&j!=t){
                 t = -1;
                }
}
  //把最大值的列号存在b中
     b[i] = t;
      }

  for(i=0;i<5;i++){
    if(b[i]!=-1){
        for(j=0;j<5;j++){
            if(a[i][b[i]]>a[j][b[i]]) {
                b[i] = -1;
             }
            else if(a[i][b[i]]==a[j][b[i]]&&i!=j){
                b[i] = -1;
             }
          }
       }
}
  for(i=0;i<5;i++){
     if(b[i]!=-1){
           flag = 1;
           printf("鞍点为:a[%d][%d]\n",i,b[i]);
     }
  }
    if(flag==0){
       printf("没有鞍点");
    }
}


查看评论

C语言&nbsp;寻找输入二位数组中的鞍点

寻找输入二位数组中的鞍点" TITLE="C语言 寻找输入二位数组中的鞍点" />
  • ldjunnbor
  • ldjunnbor
  • 2015-08-13 12:31:45
  • 438

C语言算法---求鞍点

题目:有一个3X4矩阵,要求输出其鞍点(行列均最大的值),以及它的行号和列号。 int a[3][4] = {{123,94,-10,218},                      ...
  • morixinguan
  • morixinguan
  • 2016-04-27 10:47:56
  • 2541

MOOC北京理工《C语言程序设计(上)》第8周第2题:寻找矩阵的鞍点

题目内容: 二维数组中的鞍点,即该位置上的元素是所在行上的最大值,是所在列上的最小值。 二维数组也可能没有鞍点。 输入一个二维数组的行数n,列数m,二维数组的诸元素值;输出数组的鞍点,以及鞍点所...
  • sunshineman1986
  • sunshineman1986
  • 2017-06-11 12:23:17
  • 411

C语言之鞍点的查找

鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在...
  • morixinguan
  • morixinguan
  • 2016-02-13 11:46:24
  • 2803

c语言寻找马鞍点

  • 2014年03月21日 16:07
  • 1KB
  • 下载

C语言练习——鞍点

C语言练习——鞍点 题目出自“中国大学MOOC”翁恺老师《程序设计入门——C语言》第七周编程练习第二题 以下为题目要求: 给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素...
  • lovefengruoqing
  • lovefengruoqing
  • 2016-12-01 09:47:12
  • 4251

数组中马鞍点的寻找

欢迎拍砖
  • han1558249222
  • han1558249222
  • 2014-04-14 09:41:45
  • 1651

C语言找鞍点

#include #define N 3 void matrix(int a[][N]) { int i,j; printf("input 3*3 matric:\n"); for...
  • zttbill
  • zttbill
  • 2013-12-11 00:20:37
  • 1970

寻找一个二维数组鞍点的算法实现

题目:编写程序,找出一个二维数组中的鞍点(即该位置上的元素在该行上最大,在该列上最小)。一个二维数组最多有一个鞍点,也可能没有鞍点。 分析:我们可以定义两个函数,一个为判断该元素是否是行最大元素,...
  • lfeng_coding
  • lfeng_coding
  • 2015-08-08 11:22:08
  • 5112

马鞍点的查找,二维数组的应用

  • 2011年03月08日 11:47
  • 1KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 1017
    排名: 5万+