鞍点问题
来源:互联网 发布:淘宝客产品推广合作 编辑:程序博客网 时间:2024/05/20 03:42
题目内容:
给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。
你的任务是找出A的鞍点。
输入格式:
输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。
输出格式:
对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。
如果找不到,就输出
NO
题目所给的数据保证了不会出现多个鞍点。
输入样例:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
输出样例:
2 1
下面是代码:
#include <stdio.h>
void main ()
{
int i,j,n,p,q,x,y,max,min;
printf("输入一个正整数:");
scanf("%d",&n);
int a[n][n];
printf("输入%d个整数:",n*n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<n;i++){ //在行中找出最大数max
max=a[i][0];
for(j=1;j<n;j++){
if(a[i][j]>max){
max=a[i][j];
p=i;
q=j;
}
}
min=a[p][q];
for(i=0;i<n;i++){ //再将max的值赋给min验证是否为所在列的最小数,若是则这个数就是鞍点
if(a[i][q]<min){
min=a[i][q];
x=i;
y=q;
}
}
if(p==x,q==y){
printf("鞍点的位置在(%d,%d)",x,y);
}
else {
printf("NO");
}
}
}
- 鞍点问题
- 鞍点问题
- 问题一百四十:鞍点
- 二维数组鞍点问题
- 鞍点问题(c++)
- 寻找矩阵的鞍点问题
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- 鞍点
- android app引用lib,提示not found “aaa-lib”
- 日期函数datename()
- TortoiseSVN的使用方法
- minikube在mac单机上部署kubernetes沙箱环境
- iOS直播app——GPUImage渲染底层实现
- 鞍点问题
- java 设计模式----策略模式
- POI SAX 使用事件驱动解析Excel(03/07)---有错误
- ffmpeg无压缩视频
- android之土司
- 进程和线程的区别
- iOS 生成国际化包 APP支持多语言配置
- 学习Java的一些经验讲解!
- Vue.js 点击按钮显示/隐藏内容 实例