C语言找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

news2024/9/20 14:33:16

完整代码:

/*找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能
没有鞍点*/
#include<stdio.h>
#include<stdlib.h>
int main(){
    int n=0;
    printf("请输入矩阵的行数:");
    scanf("%d",&n);
    // 使用malloc函数动态分配内存
    int **arr = (int **)malloc(n * sizeof(int *));
    for(int i = 0; i < n; i++){
        arr[i] = (int *)malloc(n * sizeof(int));
    }
    
    // 输入矩阵
    printf("请输入矩阵的元素:\n");
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            scanf("%d", &arr[i][j]);
        }
    }
    
    // 打印矩阵
    printf("该矩阵为:\n");
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    
    //判断是否有鞍点
    int flag=0;
    for (int i = 0; i < n; i++){
        //最大值
        int max=0;
        //一列中最小值的行号和一行中最大值的列号
        int row=0,column=0;
        //遍历第i行的所有元素,求得i行中最大的那个,并记录此元素的列号
        for (int j = 0; j < n; j++){
            if (arr[i][j]>=max)
            {
                max=arr[i][j];
                column=j;
            }
        }
        //最小值
        int min=max;
        //遍历第column列的所有元素,求得这列中最小的那个,并记录此元素的行号
        for (int k = 0; k < n; k++)
        {
            if (arr[k][column]<=min)
            {
                min=arr[k][column];
                row=k;
            }
        }
        //如果这个元素的行号等于i,就证明有鞍点
        if (row==i)
        {
            //存在鞍点
            flag=1;
            printf("鞍点为arr[%d][%d]=%d",row,column,arr[row][column]);
        }
    }
    //不存在鞍点
    if (flag==0)
    {
        printf("此矩阵无鞍点\n");
    }
    return 0;
}

运行截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1132851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国区域2013-2021年森林地上生物量产品

该数据集包括中国陆地区域2013-2021年30m分辨率森林地上生物量产品。每年的产品存放在以年份数字命名的文件夹中&#xff0c;有2013-2021共9个文件夹。 每个文件夹内包括分块的产品和vrt文件。 产品命名方式为分区名年份数字.tif。 不同的分区名称如下&#xff1a; cold te…

第2篇 机器学习基础 —(1)机器学习概念和方式

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。机器学习是一种人工智能的分支&#xff0c;它使用算法和数学模型来使计算机系统能够从经验数据中学习和改进&#xff0c;而无需显式地编程。机器学习的目标是通过从数据中发现模式和规律&#xff0c;从而使计算机能够自动进…

高速公路安全监测预警系统的功能优势

实时监测和预警&#xff1a;高速公路安全监测预警系统能够实时监测高速公路的路基、桥梁、隧道等结构的位移变化情况&#xff0c;并通过数据分析及时发出预警&#xff0c;有效预防和减少交通事故的发生。 高精度测量&#xff1a;高速公路安全监测预警系统能够实现高精度的位移…

光影之梦2:动画渲染前后对比,揭示视觉艺术的惊人转变!

动画渲染是影视艺术中不可或缺的一环&#xff0c;它赋予了角色和场景鲜活的生命。渲染过程中的光影、色彩、材质等元素&#xff0c;像是画家的调色板&#xff0c;将平淡无奇的线条和形状转化为充满韵味与情感的画面。动画角色仿佛拥有了自己的灵魂&#xff0c;无论是一颦一笑&a…

C# Winform编程(8)GDI+绘图

GDI绘图 简介System.Drawing命名空间System.Drawing命名空间中的常用类&#xff1a;System.Drawing命名空间中的常用结构&#xff1a; Graphics 类Pen类Brush类Font类PictureBox图像控件Bitmap类 简介 GDI(Graphics Device Interface)图像设备接口&#xff0c;属于绘图方面的A…

进阶课3——神经网络

1.定义与分类 神经网络是一种模仿动物神经网络行为特征&#xff0c;进行分布式并行信息处理的算法数学模型。它由大量的节点&#xff08;或神经元&#xff09;相互关联而成&#xff0c;每个节点代表一种特定的输出函数&#xff08;或称为运算&#xff09;&#xff0c;称为激励…

高等数学啃书汇总重难点(七)微分方程

同济高数上册的最后一章&#xff0c;总的来说&#xff0c;这篇章内容依旧是偏记忆为主&#xff0c;说难不难说简单不简单&#xff1a; 简单的是题型比较死&#xff0c;基本上就是记公式&#xff0c;不会出现不定积分一般花样繁多的情况&#xff1b;然而也就是背公式并不是想的…

Java-枚举

文章目录 枚举使用优缺点 方法 枚举 Java中的枚举是一种特殊的类&#xff0c;它用于定义一组有限的常量。 枚举在Java中被视为数据类型&#xff0c;你可以使用它们来创建枚举类型的变量&#xff0c;然后使用那些变量等。 枚举类使用enum关键字进行定义。 例如&#xff1a;在…

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求&#xff1a; 原始数据请求&#xff1a; //原始方式RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name request.getParameter("name");String age request.getParam…

我的前端笔记

HTML ./当前文件夹 ../返回上一级 ../../返回上上级 如果点击链接需要在新标签中打开<a href"#" target"_blank"> 网页中音频和视频都是默认不会自动播放的&#xff0c;视频得配合muted&#xff08;静音&#xff09;和autoplay配合使用 无语义…

Peter算法小课堂—球盒问题

球盒问题有8类&#xff0c;分别如下图 相同的球放入相同的盒子 根据上一篇Peter算法小课堂—正整数拆分-CSDN博客 简单来说&#xff0c;就这样&#x1f447; 将相同的球放入相同的盒子&#xff0c;其实相当于将正整数i分为j个正整数的个数 cin>>n>>m; if(n<…

Java|学习|多线程

1.多线程的一些概念 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源。 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径。 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0…

前端,CSS,背景颜色跟随轮播图片改变而改变(附源码)

首先看效果&#xff01; 比如轮播图时红色&#xff0c;那么背景的底色也是红色&#xff0c;轮播图时黄色&#xff0c;背景的底色也是黄色&#xff0c;这就是根据轮播图的图片切换&#xff0c;而改变背景颜色随轮播图颜色一致 话不多说&#xff0c;直接上代码&#xff01;非常简…

Linux系统编程学习 NO.8 ——make和Makefile、进度条程序

前言 今天是1024程序员节&#xff0c;不知不觉离第一次写博客已经过去了一年了。在此祝各位程序员不写bug&#xff0c;不再秃头。 make和Makefile 什么是make和Makefile&#xff1f; make和Makefile是软件开发时所用到的工具和文件。make是一个指令工具。Makefile是一个当前…

避雷!新增2本期刊被标记为「On Hold」,1区TOP刊仍在调查中!

近期小编在Master Journal List上查询期刊时偶然发现&#xff0c;又有2本期刊被科睿唯安标记为「On Hold」&#xff01; 这2本期刊分别为MIGRATION LETTERS和REVISTA DE GESTAO E SECRETARIADO-GESEC. 此外还有6本期刊被标记为「On Hold」&#xff0c;目前共计8本期刊被「On …

Fedora系统的部署与MobaXterm的使用

Fedora Fedora简介 Fedora&#xff0c;Fedora Linux&#xff08;第七版以前为Fedora Core&#xff09;是由Fedora项目社区开发、红帽公司赞助&#xff0c;目标是创建一套新颖、多功能并且自由&#xff08;开放源代码&#xff09;的操作系统。Fedora是商业化的Red Hat Enterpr…

Bwapp靶场下载安装

bwapp安装 bWAPP&#xff08;Buggy Web Application&#xff09;是一个用于学习和测试Web应用程序安全的漏洞性Web应用程序。bWAPP通过提供多种常见Web应用程序漏洞&#xff08;例如跨站点脚本&#xff08;XSS&#xff09;、SQL注入、文件包含等&#xff09;来帮助用户了解和熟…

可观察性支柱:探索日志、指标和跟踪

通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息&#xff08;即传感器数据&#xff09;来估计当前状态时&#xff0c;系统就变得“可观察”。您可以使用来自 Observability 的数据来识别和解决问题、优化性能并提高安全性。 在接下来的几节中&am…

幸狐LuckFox Pico RV1103微型Linux开发板 上手教程分享—02:SDK 环境部署

续上01教程分享&#xff0c;今天主要分享Luckfox Pico SDK 的环境部署 LuckfoxPico-SDK是基于Ubuntu LTS 系统开发测试的&#xff0c;在开发过程中&#xff0c;主要是用Ubuntu 18.04版本&#xff0c; 为了不必要的麻烦&#xff0c;我们推荐用户使用…