当前位置: 首页 > news >正文

C语言鞍点数组改进版

题目内容:

给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。

你的任务是找出A的鞍点。

改进目标:

网络上很多视频和博客都没有考虑到如果某一行最大数值MAX出现相等的情况,极端一点,当数组元素全部相等的时候,所有的点其实都是鞍点,以下程序是我针对这一问题做的一些改进

ps: 提问了B站讲课的up主老师,他的意思是如果出现一行上最大的元素相等的情况,这个数组就没有鞍点了。因为是最大值,“最”就限定了它不能有多个相同的。有相同的最大值就不是“最”了,只能是最大值之一。

他说的好像也挺有道理,哈哈哈哈,这就属于语文问题了。C语言程序问题很多都有歧义,主要是理解算法思想最重要,我的程序也只是给大家一个小小的参考,如果有其他想法的可以在下面评论区讨论,一起学习进步,欧力给!

#include<stdio.h>
#define M 4
#define N 4
//用来存放鞍点坐标的结构体
struct zuobiao
{int row[M];int colum[N];int n;
}zb;int main() {int a[M][N] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };//实验数据//int a[M][N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, };//实验数据//int a[M][N] = { 1, 2, 3, 4, 5, 6, 7, 9, 9, 0, 1, 7, 3, 4, 5, 6, };//实验数据int max, min;int flag1 = 0, flag2 = 0;int j;//输出数组for (int i = 0; i < M; i++) {for (j = 0; j < N; j++) {printf("%5d", a[i][j]);}printf("\n");}//鞍点for (int i = 0; i < M; i++) {max = a[i][0];zb.row[0] = i, zb.colum[0] = 0;zb.n = 1;for (j = 1; j < N; j++) {if (a[i][j] > max) {zb.n = 1;max = a[i][j];zb.row[zb.n -1] = i;zb.colum[zb.n -1] = j;}else if (a[i][j] == max) {zb.n ++;max = a[i][j];zb.row[zb.n - 1] = i;zb.colum[zb.n - 1] = j;}}min = max;for (j = 0; j < zb.n; j++){flag1 = 0;for (int k = 0; k < M; k++) {if (a[k][zb.colum[j]] < min) {flag1 = 1;break;}}if (!flag1) {flag2 = 1;printf("鞍点%d的行: %d   列: %d\n", max, zb.row[j], zb.colum[j]);}}		}if (!flag2) {printf("该数组没有鞍点\n");}return 0;
}

http://www.lryc.cn/news/217999.html

相关文章:

  • K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示
  • 【数据结构】树家族
  • Vert.x学习笔记-Vert.x的基本处理单元Verticle
  • 干货分享:基于 LSTM 的广告库存预估算法
  • dataframe删除某一列
  • 提升ChatGPT答案质量和准确性的方法Prompt engineering
  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议
  • HTML 表格
  • AIGC(生成式AI)试用 10 -- 安全性问题
  • STM32循迹小车原理介绍和代码示例
  • Nginx 配置详细讲解
  • gdb 日志记录不显示到屏幕的方法(gdb13最新版)
  • JAVA智慧工地管理系统源码基于微服务
  • 学习笔记三十四:Ingress和 Ingress Controller概述
  • Webpack的Tree Shaking。它的作用是什么?
  • 研发效能DevOps: Git安装
  • ZZ038 物联网应用与服务赛题第D套
  • 基于STM32设计的室内环境监测系统(华为云IOT)_2023
  • UE5C++学习(一)--- 增强输入系统
  • 好物周刊#29:项目管理软件
  • 玻色量子“天工量子大脑”亮相中关村论坛,大放异彩
  • 使用Gorm进行高级查询
  • 基于梯度算法的无人机航迹规划-附代码
  • 【工具】【IDE】Qt Creator社区版
  • 王道p18 6.从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同(c语言代码实现)
  • Python入门:6个好用的Python代码,快来收藏!
  • Linux常用指令(二)——文件管理
  • AI开源 - LangChain UI 之 Flowise
  • java的集合类中哪些可以添加不同类型数据,哪些不可以?
  • 基于51单片机的烟雾和温湿度检测控制系统仿真(智能防火系统,火灾报警灭火系统)