#GOC107195. 最值问题知识点

最值问题知识点

题目描述

题目:最高的同学

五年级二班一共有N名同学,现已知每位同学的身高数据(单位:厘米),老师请你帮忙,编程求出最高同学的身高。

【输入格式】

两行数据。第一行变量n,表示n名同学(1<=n<=100)。

第二行:n名同学的身高h(0<=h<=180)。

【输出格式】

最高的身高。

5
148 162 154 166 155
166
参考代码:
#include<iostream>
using namespace std;
int n,h,ma=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>h;
if(h>ma) ma=h;//如果现在的身高h比之前最高的ma还大,就更新数值。
}
cout<<ma;
return 0;
}
题目:最矮的同学
五年级二班一共有N名同学,现已知每位同学的身高数据(单位:厘米),老师请你帮忙,编程求出最矮同学的身高。

【输入格式】

两行数据。第一行变量n,表示n名同学(1<=n<=100)。

第二行:n名同学的身高h(0<=h<=180)。

【输出格式】

最高的身高。

5
148 162 154 166 155
148
参考代码:
#include<iostream>
using namespace std;
int n,h,mi=200;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>h;
if(h<mi) mi=h;//如果现在的身高h比之前最矮的mi还小,就更新数值。
}
cout<<mi;
return 0;
}
题目:最高和最低的温度
非洲的撒哈拉沙漠是世界上昼夜温差最大的地方之一。这个沙漠位于非洲大陆的北部,是世界上最大的热带沙漠。在这里,白天温度可以升至50摄氏度以上,而夜晚温度则可以降至零下10摄氏度以下。现在科学家们监测了某一天不同时间段的温度,请你帮忙求出一天中最高温度和最低温度分别是多少?

【输入格式】

两行数据。第一行变量n,表示监测的次数(1<=n<=20)。

第二行:n次监测的温度值w(-20<=w<=60)。

【输出格式】

两行,第一行表示最高温度,第二行表示最低温度。

6
-15 20 44 54 -19 50
54
-19
#include<iostream>
using namespace std;
int n,w,ma=-25,mi=100;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>w;
if(w>ma) ma=w;
if(w<mi) mi=w;
}
cout<<ma<<endl<<mi;
return 0;
}

注意事项:

在求最值问题时,初始值赋值非常关键。

求最大值,ma的初始值要比最小值要小。

求最小值,mi的初始值要比最大值要大。

这样才能在不断的输入数据的过程中更新答案。