#C01L09P02. C01.L09.求最值.for运用之查找最大值.例题2

C01.L09.求最值.for运用之查找最大值.例题2

题目描述

输入 N 个整数(数据范围不明),求其中最大值。

输入格式

第一行 1 个整数 N :范围在[1,200]。

第二行 N 个整数。

输出格式

一个整数。

样例

4
-3 -6 -1 -9
-1

思考

此题与上题情景相似,但不清楚题目数据的范围,那么 maxn 的初值应该设置为多少?数据范围是否还是用 int 呢?

如果题目的数据范围包含负数,或者不好根据数据范围来定初值的话,将所有的数据类型定义为 long long ,我们可以找到第一个数 a ,将 maxn 设为 a ,这样的话相当于 n 个数当中找最大值和最小值,也符合题意。

代码分析

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

  2. 在循环外先输入第一个数据 a ;

  3. 将第一个数据的值,赋值给 maxn ;

  4. 在循环中做以下操作:(注意此时只剩下 n-1 个数据需要输入)

    • 继续读入下一个整数a;

    • 判断这个整数 a 是否大于 maxn ,如果是,就将 a 的值存放到 maxn 中;

  5. 最后输出最大数maxn。

完成程序

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	long long a,maxn;
	
	cin>>n; //输入整数的个数
	cin>> 填空(1) ; //将第一个整数赋值给maxn 
	
	for(int i= 填空(2) ;i<=n;i++) //输入和比较其余的整数 
	{
		cin>>a;//依次输入整数
		if(a填空(3))
			maxn = 填空(4)
	}
	
	cout<<maxn;

	return 0;
}

填空(1):{{ input(1) }}

填空(2):{{ input(2) }}

填空(3):{{ input(3) }}

填空(4):{{ input(4) }}