PTA c语言找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样例1:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
输出样例1:
2 1
输入样例2:
2
1 7
4 1
输出样例2:
NONE
本题所给的测试点:
测试点 | 提示 | 结果 | 耗时 | 内存 |
---|---|---|---|---|
0 | sample1等价,存在鞍点 |
答案正确 |
3 ms | 296 KB |
1 | sample2等价,不存在 |
答案正确 |
2 ms | 292 KB |
2 | 最大规模,有并列极值元素,最后一个是鞍点 |
答案正确 |
2 ms | 260 KB |
3 | 最小规模 |
答案正确 |
2 ms | 384 KB |
这里我主要说一下第2个测试点,最大规模,有并列极值元素,最后一个是鞍点:
这里注意一定要写>=,这样有并列的话,最后一个才是鞍点。
if(s[i][j]>=s[i][lie])
{lie=j;
}
其他的大家看代码就可以了,后面都有注释。
代码如下:
#include<stdio.h>
int main()
{int n,m,i,j,t;scanf("%d",&n);int s[n][n];for(i=0;i<n;i++) // 输入矩阵{for(j=0;j<n;j++)scanf("%d",&s[i][j]); }int row=0,lie=0; int flag=0; for(i=0;i<n;i++) // i控制行,j控制列。 {for(j=0;j<n;j++){if(s[i][j]>=s[i][lie]) //找到当前行最大,将行最大所在的列数赋值给 lie {lie=j; //有并列极值元素,最后一个是鞍点} }flag=1;/* 遍历行最大值所在的那一列,若列上存在大于上一循环找到的鞍点,则该点不是鞍点,令flag=0,跳出当前循环,进入下一行继续寻找鞍点。*/for(row=0;row<n;row++) {if(s[row][lie]<s[i][lie]) {flag=0;break;}}// 若找到鞍点,则跳出循环。if(flag){break;} }if(flag) printf("%d %d",i,lie);else printf("NONE");
}
PTA c语言找鞍点相关推荐
- PTA C语言找不同
这是一个签到题,非常简单.一群网友在网上在玩游戏,看谁是最与众不同的,每一个人都单独写一个数字,然后依次上交,谁的数据没有和其他人重复,谁就赢了,如果有很多人都与众不同,那么第一个做到的才是真正的与众 ...
- 只学python找工作难吗-只学python语言找工作难吗?
只学python语言找工作难吗?小编可以肯定的告诉你不难, 初级中级高级职位都有啊,学习python可以找后台开发.数据挖掘.机器学习等方面的工作,python的强大之处在于拥有许多第三方包,可以说是 ...
- C语言找出两个字符串唯一不同的一个字符(附完整源码)
C语言找出两个字符串唯一不同的一个字符 C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) ...
- window系统下C语言找不到fork()函数
window系统下C语言找不到fork()函数 有次模拟进程时,想在window系统下调用fork()函数,但是就是引入相关头文件都无法找到函数,一开始是怀疑是否引入的头文件有误或者缺失,发现并没有缺 ...
- C语言——找出矩阵最大值
C语言--找出矩阵最大值 问题描述: 代码: # include <stdio.h>int main() {int a[3][4];int i, j;int maxi = 0;int ma ...
- 7-153 找鞍点 (20 分)
7-153 找鞍点 (20 分) 一个矩阵元素的"鞍点"是指该位置上的元素值在该行上最大.在该列上最小. 本题要求编写程序,求一个给定的n阶方阵的鞍点. 输入格式: 输入第一行给出 ...
- C语言---找零问题------程序优化
C语言----找零问题----程序优化 题目详情: 现有一元,两元,五元面额的纸币若干,给出任意的找零要求,给出每种找零方案,输出循环次数. 优化代码一: 代码优化内容: 利用num/5,num/2来 ...
- C语言找出数组中最小的数和它的下标
C语言找出数组中最小的数和它的下标,然后把它和数组中最前面的元素对换位置 #include <stdio.h> int main() {int A[10]={3,7,5,9,10,2,1, ...
- 习题7-5 找鞍点 (20分)(函数调用解法:先找最大值后比较是否为最小值)
习题7-5 找鞍点 (20分) 一个矩阵元素的"鞍点"是指该位置上的元素值在该行上最大.在该列上最小. 本题要求编写程序,求一个给定的n阶方阵的鞍点. 输入格式: 输入第一行给出一 ...
最新文章
- 第10章 接口、继承与多态----抽象类和接口
- MFC中UPD通信详细解说
- 易遭黑客利用,慎用免费的网站SSL证书!!!
- debian 9 安装后的配置,debian 9 开发环境。
- Qt实现QTextEdit背景透明
- mysql如何创建用户代码_MySQL创建用户与受权方法_mysql
- Memcached 学习---(4)Memcached 连接
- 朋友圈最忌讳发什么?
- [置顶] 使用Joson的格式字符串在Socket中通讯时数据格式的转换
- SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
- MVC渲染文章内容的html标签转义
- Class类文件结构之ConstantValue属性
- MP3 Lame 转换 参数 设置(转)
- BIP63(隐身地址)
- android 获取粗略位置_从Android上的GPS提供商处获取*粗略*位置
- 使用System.setOut()
- spring clude ---服务网关组件Netflix Zuul
- 归一化处理的目的和意义
- 了解线性分组码的编码原理并编程实现C语言,线性分组码的编译码(DOC).doc
- react使用antd-mobile做自定义替换头像功能