比较数的大小
在学习数学的早期阶段,孩子们会学会如何比较两个数的大小。他们通常通过观察数的数字组成来判断哪个数更大。例如,当比较数字34和56时,如果左边第一位的数字不同,那么具有较大数字的数就是较大的数。在这个例子中,5比3大,所以56大于34。
如果第一个数字相同,则需要比较下一个数字。例如,比较34和38时,由于第一个数字都是3,我们就需要比较第二位的数字,4小于8,因此34小于38。
在计算机中通过> < 很方便的就可以比较出两个数的大小。
那三个数,只要判断他比另外两个都大就可以了,但是当数字躲起来呢,比较的方法就比较混乱了。
先看一下初学者思路的方法
如果a>=b,那么再判断b,c的大小:
如果b>=c,那么a>=b>=c。因此a是最大的。但是其他的数也得比较一下。
#include<iostream>
using namespace std;
int main()
{int a, b, c;//输入三个数cin >> a >> b >> c;if(a >= b){if(b >= c) cout << a << " " << b << " " << c << endl;else{if(a >= c)cout << a << " " << c << " "<< b << endl;else //也就是a < ccout << c << " " << a << " "<< b << endl;}}else//a < b{if(a >= c)cout << b << " " << a << " " << c << endl;else //也就是a < c{if(b >= c)cout << b << " " << c << " " << a << endl;else //也就是b < ccout << c <<" " << b << " " << a << endl;}}return 0;
}
比较聪明的小伙伴觉得ifelse嵌套比较乱,会使用&&逻辑运算符来做
#include<iostream>
using namespace std;
int main()
{int a, b, c;cin >> a >> b >> c;if(a >= b && b >= c)cout << a <<" " << b << " " << c << endl;else if(a >= c && c >= b)cout << a << " " << c <<" " << b << endl;else if(b >= a && a >= c)cout << b << " " << a << " " << c << endl;else if(b >= c && c >= a)cout << a << " " << c << " " << b << endl;else if(c >= a && a >= b)cout << c << " " << a << " " << b << endl;else if(c >= b && b >= a)cout << c << " " << b << " " << a << endl;return 0;
}
那数字如果多一点呢,五个,十个,你们还比的出来么?
因此我们需要学习更好的方法来解决这个问题
找最大值的方法
当我们有一组数时,找出最大值就是重复上述的比较过程,直到确定所有数中最大的那一个。具体步骤如下:
- 选择与比较:从数列中选取两个数进行比较,确定哪个数更大。
- 记忆最大值:记住这两个数中较大的那个数。
- 继续比较:将记忆中的最大值与列表中的下一个数进行比较。如果下一个数更大,就更新记忆中的最大值。
- 遍历整个列表:重复上述过程,直到列表中的所有数都被比较过。
- 确定最大值:经过上述步骤后,你记忆中的数就是列表中的最大值。
例如,如果有数列 [3, 7, 2, 9, 5],我们可以这样找出最大值:
- 比较3和7,7更大,记忆7。
- 比较7和2,7依然最大,保持记忆7。
- 比较7和9,9更大,更新记忆为9。
- 比较9和5,9依然是最大值。
最后,我们得出结论,数列 [3, 7, 2, 9, 5] 中的最大值是9。
实践示例(先不用数组)
void test1() {//1、定义变量nint n;cin >> n;//见名知意double max = 0, min = 0, avg;double cj;double sum = 0;//2、输入n个考生的成绩。for (int i = 1; i <= n; i++) {cin >> cj;sum += cj;if (max == 0) {max = cj;}else if (cj > max) {max = cj;}if (min == 0) {min = cj;}else if (cj < min) {min = cj;}}cout << "最大值:" << max << endl;cout << "最小值:" << min << endl;cout << "平均值:" << sum / n << endl;
}
让我们通过一个小例子来实践一下这个方法。假设我们有以下数列:让我们一步步找出其中的最大值。
#include <iostream>
using namespace std;int main() {int numbers[] = {5, 3, 9, 1, 8}; // 定义一个整数数组int n = sizeof(numbers) / sizeof(numbers[0]); // 计算数组长度int max_value = numbers[0]; // 初始化最大值为数组的第一个元素// 遍历数组,寻找最大值for (int i = 1; i < n; ++i) {if (numbers[i] > max_value) {max_value = numbers[i];}}// 输出最大值cout << "最大值是: " << max_value << endl;return 0;
}
上面其实都已经加了注释了,怎么样,理解了么,方法需要多练,然后有问题我们评论区讨论吧。