鞍点问题(c++)
来源:互联网 发布:淘宝申请信用卡支付 编辑:程序博客网 时间:2024/06/06 12:25
问题描述:若矩阵A中的某一元素A[i,j]是第I行中的最大值,而又是第j列中的最小值,则称A[i,j]为矩阵A中的一个鞍点。请写一个可确定此鞍点位置的算法(如果这个鞍点存在)。
基本要求:要求算法考虑某行中具有多个相同的且又是该行中最小的元素的情况。
实现提示:可以用一维数组R[0..n-1]保存每一行中的最小元素,用一维数组C[0..n-1]保存每一行中的最大元素。如果R[i]=C[j],则A[i,j]即为鞍点。
程序实现:可先求出每行的最小元素,放入一个数组min[m]中,再求出每一列的最大元素,放入max[n]中,若某个元素既在min[i]中,又在max[j]中,则该元素R[i][j]便是鞍点。
程序设计
#define m 3
#define n 3
#include "stdio.h"
void main()
{
int i,j,a[m][n],min[n],max[m];int t=0;
printf("按行输入元素,例:'5,'表示元素是5:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d,",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
max[i]=a[i][0];
if(a[i][j]>max[i])
max[i]=a[i][j];
}
for(j=0;j<n;j++)
for(i=0;i<m;i++)
{
min[j]=a[0][j];
if(a[i][j]<min[j])
min[j]=a[i][j];
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(max[i]==min[j])
{
t++;
printf("第%d行第%d列的%d是鞍点\n",i,j,max[i]);
}
}
if(t==0)
printf("该矩阵不存在鞍点\n");
printf("输出矩阵:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
- 鞍点问题(c++)
- 二维数组的鞍点问题(c++)
- 鞍点问题
- 鞍点问题
- 关于二维数组求鞍点的C程序(多鞍点?!)
- C语言找鞍点
- C语言----求“鞍点”
- C语言+鞍点
- 问题一百四十:鞍点
- 二维数组鞍点问题
- C语言算法---求鞍点
- 鞍点-week7-C语言习题集
- 寻找矩阵的鞍点问题
- 求鞍点(acm)
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- H264编码原理以及I帧B帧P帧
- some Gs
- System.in.read()的特殊地方
- 中国移动成立亚洲首个OPNFV实验室 2015年将迎接变革
- 停车场的模拟管理(数据结构 C++)
- 鞍点问题(c++)
- 数据库中的日期格式化查询
- java获取ip地址
- 获取ip 以及验证ip合法
- 浏览器记住密码功能 Tab回车会自动填入
- 获得手机的屏幕高度和宽度
- js延时跳转
- UML 序列图
- 安卓事件分发机制