#C01L09P01. C01.L09.求最值.for运用之查找最大值.例题1
C01.L09.求最值.for运用之查找最大值.例题1
题目描述
输入 N 个整数,求其中最大值。
输入格式
第一行 1 个整数N:范围在 [1,200]。
第二行 N 个整数:每个整数范围在 [0,1000000]。
输出格式
一个整数。
样例
4
3 6 1 9
9
分析
我们学过通过 for + if 对输入的数据进行查找和统计,那么是否能利用这个查找出数据中最大的那个数据呢?
if 的条件该如何写呢?
我们可以引用一个新的变量 maxn 用于存放最大数,将所有数据依次和 maxn 比较,如果该数比 maxn 大,则将该数据的值存放到 maxn 中。
当所有的数据都比较完成后,maxn 存放的数据就是最大数。
为保证能找出正确的最大数,maxn 的初值最好比所有输入的数据小。
本题样例中的比较过程如下:
题目中输入的数据范围是[0,1000000],maxn的初值可以赋值为0
循环次数 | 循环前 | 1 | 2 | 3 | 4 |
输入的数据 | 3 | 6 | 1 | 9 | |
比较过程 | maxn<a maxn=a |
maxn<a maxn=a |
maxn>a | maxn<a maxn=a |
|
maxn | 0 | 3 | 6 | 6 | 9 |
代码分析
-
输入一组整数的个数n;
-
设置一个变量maxn存放最大的数,初值赋值为0;
-
在循环中做以下操作:
- 读入一个整数a;
- 判断这个整数a是否大于maxn,如果是,就将a的值存放到maxn中;
-
最后输出最大数maxn。
完成程序
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,maxn;
cin>>n; //输入整数的个数
maxn = 填空(1);
for(int i=1;i<=n;i++)
{
cin>>a;//依次输入整数
if(a 填空(2) ) //比较当前的最大值和输入的整数
maxn = 填空(3)
}
cout<<maxn;
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
相关
在以下作业中: