比较数的大小
在学习数学的早期阶段,孩子们会学会如何比较两个数的大小。他们通常通过观察数的数字组成来判断哪个数更大。例如,当比较数字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 < c
cout << 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 < c
cout << 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、定义变量n
int 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;
}
上面其实都已经加了注释了,怎么样,理解了么,方法需要多练,然后有问题我们评论区讨论吧。