在易语言中,取出整数数组的最大数和最小数,核心思路是遍历数组,通过比较和更新变量来实现。以下是两种常用方法的代码实现。
方法一:使用循环直接比较
此方法通过一个循环,同时寻找最大值和最小值,效率较高。
.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 数组, 整数型, , "0"
.局部变量 最大数, 整数型
.局部变量 最小数, 整数型
.局部变量 i, 整数型
' 假设有一个整数数组
数组 = { 12, 45, 7, 89, 23, 1, 67, 34, 9 }
' 初始化最大数和最小数为数组的第一个元素
最大数 = 数组 [1]
最小数 = 数组 [1]
' 遍历数组,从第二个元素开始比较
.计次循环首 (取数组成员数 (数组), i)
.如果真 (i > 1) ' 跳过第一个元素,因为它已被用作初始值
.如果 (数组 [i] > 最大数)
最大数 = 数组 [i]
.否则 .如果 (数组 [i] < 最小数)
最小数 = 数组 [i]
.如果结束
.如果结束 .如果真结束
.计次循环结束 ()
' 输出结果
标准输出 (, “最大数:” + 到文本 (最大数) + #换行符)
标准输出 (, “最小数:” + 到文本 (最小数) + #换行符)
返回 (0) ' 可以根据您的需要返回任意数值
方法二:使用数组排序
此方法先对数组进行排序,然后直接取首尾元素。虽然直观,但会改变原数组的顺序。
.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 数组, 整数型, , "0"
.局部变量 最大数, 整数型
.局部变量 最小数, 整数型
' 假设有一个整数数组
数组 = { 12, 45, 7, 89, 23, 1, 67, 34, 9 }
' 对数组进行排序(从小到大)
数组排序 (数组, 真)
' 排序后,最小数在第一个位置,最大数在最后一个位置
最小数 = 数组 [1]
最大数 = 数组 [取数组成员数 (数组)]
' 输出结果
标准输出 (, “最大数:” + 到文本 (最大数) + #换行符)
标准输出 (, “最小数:” + 到文本 (最小数) + #换行符)
返回 (0) ' 可以根据您的需要返回任意数值
两种方法对比
| 特性 | 方法一(直接比较) | 方法二(数组排序) |
|---|---|---|
| 核心逻辑 | 遍历数组,动态比较更新最大值和最小值。 | 先对数组排序,再取首尾元素。 |
| 时间复杂度 | O(n),只需一次遍历。 | O(n log n),取决于排序算法效率。 |
| 是否改变原数组 | 否,原数组顺序不变。 | 是,会改变原数组的顺序。 |
| 适用场景 | 仅需找出最值,且需保留原数组顺序时推荐使用。 | 需要排序后的数组,或不在意原数组顺序时使用。 |
推荐使用“方法一”,因为它效率更高且不改变原数据,是解决此类问题的标准做法。
参考来源
- 要求:从键盘输入10个整数存入一个数组中,用函数编程将其中的最大数与最小数位置互换,然后输出互换后的数组。
- 从键盘输入的十个整数中的最大数和最小数
- 【c++ 求输入若干整数中的最大数与最小数】
- C语言输入10个无序的整数,存放在数组中,找出其中最小数所在的位置
- 最大数和最小数
1336

被折叠的 条评论
为什么被折叠?



