IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 方阵中的鞍点判断(数组) C语言 -> 正文阅读

[数据结构与算法]方阵中的鞍点判断(数组) C语言

描述:

? 输入一个正整数m(1<= m <= 6)和m阶方阵A中的元素,如果找到A中的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标;否则,输出"NO"(没有鞍点),设A中最多有一个鞍点。

输入

3

1 2 3

0 1 2

0 0 1

输出

2 2

样例输入

4

1 2 3 4

0 1 1 3

0 0 1 2

1 0 0 1

样例输出

NO

思路及分析:

? ? ? ? 用二维数组来做这道题会减小我们的难度。同时,先求出每一行的最大值,再在这一个元素的这一列来判断它是不是最小的,对它们进行判断。最后打印出这个元素的下标就可以了。同时还要注意,在样例中输入4和矩阵里的元素时发现,有重复的值(1)的时候,就算他是最小的,但因为重复,不符合鞍点的定义,所以,还需要判断是否有重复的值。另外,题目说明,鞍点最多只有一个。

#include<stdio.h>

int main(void)
{
	int i = 0,  j = 0;
	int arr[6][6] = { 0 };
	int max = 0;//定义最大值 
	int _bool = 0;//标签作用,用来判断是否有重复值
	//最后当_bool=0,说明没有,_bool=1,说明有 
	int row = 0, col = 0;//行,列 
	int m = 0; 
	scanf("%d", &m);
	
	for(i = 0; i < m; i++)
	{
		for(j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	
	//由于不知道最大值,开始假设第一行第一列元素是最大的 
	max = arr[0][0];
		 
	for(i = 0; i < m; i++)//一行 
	{
		//假设每一行的第一个元素为最大值 
		max = arr[i][j];
		//寻找每一行的最大值 
		for(j = 0; j < m; j++)
		{
			
			if(arr[i][j] > max)
			{
				//如果是MAX,就记录它的下标
				//不可以直接用i或j,它们是随条件在变
				//用另一个量来记录下标 
				row = j;
				_bool = 1; 
				//记录最大值,在后面的判断用 
				max = arr[i][j];
			}
		}
		
		//用来判断这一行的最大值是否有重复的
		//如果有,_bool=0,不存在鞍点 
		for(j = 0; j < m; j++)
		{
			//循环时不需要判断它本身 
			if(arr[i][j] == max && j != row)
			{
				_bool = 0;
			}
		}
		
		//列的判断,行满足后,找列的最小值。 
		for(j = 0; j < m; j++)
		{	
			if(arr[i][row] < arr[j][row])
			{
				col = i;
			}
		}		
	}
	
	if(_bool == 0)
	{
		printf("NO\n");
	}
	else
	{
		printf("%d %d", row, col);
	}
	
	return 0;
}

????????

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:12:21  更:2021-11-24 08:12:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:43:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码