#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

代码分析

  1. 输入一组整数的个数n;

  2. 设置一个变量maxn存放最大的数,初值赋值为0;

  3. 在循环中做以下操作:

    • 读入一个整数a;
    • 判断这个整数a是否大于maxn,如果是,就将a的值存放到maxn中;
  4. 最后输出最大数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) }}