C语言经典算法实例1:求二维数组最大最小值_c二维数组最小值

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

+ [3.3、输入数组(方阵)的阶](#3_63)
+ [3.4、输出 “输入的数组”](#34__82)
+ [3.5、计算每行最大数据中的 最小的那一个数字](#35__103)
+ - [3.5.1、二阶数组调试的结果](#351_132)
	- [3.5.2、三阶数组调试的结果](#352_135)
+ [3.6、计算每行最小数据中的 最大的那一个数字](#36__140)
+ - [3.6.1、二阶数组调试的结果](#361_171)
	- [3.6.2、三阶数组调试的结果](#362_175)

在这里插入图片描述

一、问题描述

求二维数组最大最小值
问题的描述
如下几点所示

  1. 在n 行 n 列的二维整数数组中,按以下要求选出两个数。
  2. 首先从每行选出大数,再从选出 的 n 个大数中选出小数;
  3. 其次,从每行 选出小数,再从选出的 n 个小数中选出大数。

二、算法实例编译环境

本文C语言经典算法实例的编译环境,使用的是集成开发环境:Visual Studio 2019
在这里插入图片描述
在这里插入图片描述

Visual Studio 2019官网链接如下

Visual Studio 2019官网链接
在这里插入图片描述

Visual Studio 2019集成的开发环境的特点有

    1. Visual Studio 2019默认安装Live Share代码协作服务。
    1. 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
    1. Visual Studio IntelliCode AI帮助。
    1. 更好的Python虚拟和Conda支持。
    1. 以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等

三、算法实例实现过程

3.1、包含头文件

包含头文件 代码如下所示


#include <stdio.h>
#include <stdlib.h>

  • 将要用到的C语言头文件包含近年来。

3.2、定义宏和声明数组

定义宏和声明数组 代码如下所示

#define MAXN 20
int a[MAXN][MAXN];

  • 定义了MAXN ,代表了MAXN为常数20。
  • 声明了数组a。

3.3、声明相关变量

声明相关变量 代码如下所示

	int min, max;
    int row, col, n;

  • 声明相关变量min, max,row, col, n;

3.3、输入数组(方阵)的阶

输入数组(方阵)的阶 代码如下所示

	printf("Please input the order of the matrix:");/\* 输入方阵的阶次 \*/
    scanf("%d", &n);

    printf("\nPlease input the elements of the matrix,\nfrom a[0][0] to a[%d][%d]:\n", n - 1, n - 1);
    for (row = 0; row < n; row++)
    {
        for (col = 0; col < n; col++)
        {
            scanf("%d", &a[row][col]);
        }
    }

  • 根据文字提示,输入数组(方阵)的阶。
  • 根据文字提示,向数组中输入数据。
    在这里插入图片描述

3.4、输出 “输入的数组”

输出 “输入的数组” 代码如下所示

 	printf("\nThe original matrix is\n");
    for (int row = 0; row < n; row++)
    {
        for (int col = 0; col < n; col++)
        {
            printf("%d ", a[row][col]);
        }
        printf("\n");
    }
    printf("\n");

  • 输出 我们向数组中输入的数据。

按F5进行编译,调试结果如下所示。

在这里插入图片描述

  • 可以正确的输出我们向数组中输入的数据。

3.5、计算每行最大数据中的 最小的那一个数字

计算每行最大数据中的 最小的那一个数字代码如下所示

	for (min = a[0][0], row = 0; row < n; row++)
    {
        for (max = a[row][0], col = 1; col < n; col++) /\*从 row 行选出大数 \*/
        {
            if (max < a[row][col])
            {
                max = a[row][col];
            }
        }

        if (row == 0)       /\* 保存至 row 行的小数 \*/
        {
            min = max;
        }
        else if (min > max)
        {
            min = max;
        }
    }
    printf("The minimum of maximum number is %d\n", min);

  • 先从每行选出大数
  • 再从选出 的 n 个大数中选出小数;

按F5进行编译,调试结果如下所示。

3.5.1、二阶数组调试的结果

在这里插入图片描述

3.5.2、三阶数组调试的结果

在这里插入图片描述

3.6、计算每行最小数据中的 最大的那一个数字

计算每行最小数据中的 最大的那一个数字 代码如下所示

 	for (max = a[0][0], row = 0; row < n; row++)
    {
        for (min = a[row][0], col = 1; col < n; col++) /\* 从 row 行选出小数 \*/
        {
            if (min > a[row][col])
            {
                min = a[row][col];
            }
        }

        if (row == 0)       /\*保存至 row 行的大数 \*/
        {
            max = min;
        }
        else if (max < min)
        {
            max = min;
        }
    }

    printf("\nThe maximum of minimum numbers is %d\n", max);

  • 先从每行 选出小数,
  • 再从选出的 n 个小数中选出大数。

按F5进行编译,调试结果如下所示。

3.6.1、二阶数组调试的结果

在这里插入图片描述

3.6.2、三阶数组调试的结果

在这里插入图片描述

四、经典算法实例程序 完整代码

经典算法实例程序完整代码如下所示

4.1、main.h文件

#pragma once



![img](https://img-blog.csdnimg.cn/img_convert/f9f8bec269413907e841a76f29e05409.png)
![img](https://img-blog.csdnimg.cn/img_convert/be9e53fa16cc75e5bb7cfeb5a27a4dc0.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**





#pragma once

[外链图片转存中…(img-zkzJVko1-1715784934394)]
[外链图片转存中…(img-nsEIIi3u-1715784934394)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值