矩阵的马鞍点

  

#include<stdio.h>
#define n 4
//马鞍点是第I行值最小第J列值最大
void maxmin(int a[n][n])
{
int i,j ,flag;
int max[n],min[n];
for(i=0;i<n;i++)
{ min[i]=a[i][0];//将数组每行的第一个元素赋值给min[]数组
for(j=1;j<n;j++)
{
if(a[i][j]<min[i])
min[i]=a[i][j];
}
}

for(j=0;j<n;j++)
{
max[j]=a[0][j];
for(i=1;i<n;i++)
{
if(max[j]<a[i][j])
max[j]=a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(max[i]==min[j])
{
printf("马鞍点是%d %d =%d",i,j,a[i][j]);
flag=1;
}
}
if(!flag)
{
printf("无马鞍点");
}
}

int main()
{
int i,j;
int a[n][n]={{9,7,6,8},{20,26,22,25},{28,36,25,30},{12,4,2,6}};
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf(" %d ",a[i][j]);
}
printf("\n");
}
maxmin(a);
}

时间: 2024-12-15 06:12:33

矩阵的马鞍点的相关文章

求二维数组的马鞍点-C程序设计-7.8习题

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列最小.也可能没有鞍点. 下面是我做这道题时候的代码,如果有不正确的地方,还望大家多多指教. //马鞍点:矩阵中在行上最大,列上最小的点. #include <stdio.h> #define ROW 10 #define COLUMN 10 int i,j,m,n; int arr[ROW][COLUMN]; int main(){ void maandian(int arr[ROW][COLUMN]); printf("

程序设计入门——C语言 第7周编程练习 2 鞍点(5分)(5分)

2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格式: 输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格. 输出格式: 对输入的矩阵,如果找到鞍点,就输出其下标.下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数. 如果找不到,就输出 NO 题目所给的数据保证

C语言之基本算法32—鞍点

//数组 /* ================================================================== 题目:求随意矩阵的全部鞍点.并统计个数.(在矩阵中,一个数在所在行中是最大值, 在所在列中是最小值.则被称为鞍点.) 如: 1   2   3 4   5   6 7   8   9 当中,a[1][3]=3是该矩阵唯一的鞍点. ============================================================

转 马尔柯夫预测法

http://blog.sina.com.cn/s/blog_5398194701011yv6.html 马尔柯夫预测法 马尔柯夫预测法:马尔柯夫预测以俄国数学家A.A.Markov名字命名,是利用状态之间转移概率矩阵预测事件发生的状态及其发展变化趋势,也是一种随时间序列分析法.它基于马尔柯夫链,根据事件的目前状况预测其将来各个时刻(或时期)的变动状况. 1. 马尔柯夫链.状态是指某一事件在某个时刻(或时期)出现的某种结果.事件的发展,从一种状态转变为另一种状态,称为状态转移.在事件的发展过程中

网易云课堂_程序设计入门-C语言_第六章:数组_2鞍点

2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格式: 输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格. 输出格式: 对输入的矩阵,如果找到鞍点,就输出其下标.下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数. 如果找不到,就输出 NO 题目所给的数据保证

1.一维数组:选择排序法、二分查找法; 2.二维数据:定义、引用、初始化,二维数组与矩阵。

5-1 输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出"Yes", 否则,输出"No".主对角线为从矩阵的左上角至右下角的连线,方阵a中的所有元素都沿主对角线对称指对所有i, k,a[i][k]和a[k][i]相等 一.实验代码 #include <stdio.h> int main(void) { int found, i, k, n; int a[10][10]; scanf ("%d

二维数组找鞍点

二维数组找鞍点(鞍点是行最大,列最小的一个数) 一个矩阵元素的"鞍点"是指该位置上的元素值在该行上最大.在该列上最小. 本题要求编写程序,求一个给定的n阶方阵的鞍点. 输入格式: 输入第一行给出一个正整数n(1≤n≤6).随后n行,每行给出n个整数,其间以空格分隔. 输出格式: 输出在一行中按照"行下标 列下标"(下标从0开始)的格式输出鞍点的位置.如果鞍点不存在,则输出"NONE".题目保证给出的矩阵至多存在一个鞍点. 输入样例1: 4 1 7

《概率统计》状态转移:初识马尔科夫链

回顾两类重要的随机过程 在上一篇随机过程的概述中,我们提到过两类非常非常典型且重要的随机过程,一类是:伯努利过程和泊松过程,这一类随机过程是无记忆性的,也就是说未来的状态不依赖于过去的状态--新的"成功"或"到达"不依赖于该过程过去的历史情况. 而另一类则正好相反,未来的情况会依赖于过去的情况,并且能够在某种程度上通过过去发生的情况去预测未来,例如这一篇我们的核心内容--马尔科夫过程,它在许许多多的领域都有深入和广泛的应用. 离散时间的马尔科夫链 马尔科夫链三要素

hdu 5749 Colmerauer

题意:对于给定的$n \times m$矩阵$M$,定义$S(a,b)$为$M$的所有$a \times b$子矩阵的权重之和.一个矩阵的权重是指矩阵中所有马鞍点权值之和,在一个矩阵中某点是马鞍点当且仅当它在所在行是唯一一个最小的,同时在所在列中是唯一一个最大的.现在输入矩阵$M$,要求计算$W= \sum\sum{abS(a,b)}, 1 \leq a \leq n, 1 \leq b \leq m$.数据范围$1 \leq n, m \leq 1000, 0 \leq M(i, j) \le