题目描述 Description
输入n个数,n<=100,找到其中最小的数和最大的数
输入描述 Input Description
第一行一个整数n
接下来一行n个整数,每个整数不超过231 -1
输出描述 Output Description
最小和最大的数
样例输入 Sample Input
4
1 2 3 4
样例输出 Sample Output
1 4
数据范围及提示 Data Size & Hint
无
本题作为入门级题目主要考察对基本语句的使用和基本思路方法,顺便介绍了求最大最小值的方法。
用到的基本语句:赋值、输入输出、循环、条件;
用到的基本逻辑结构:循环结构,条件选择结构……(这东西都扯上了)-_-''
算法描述:
我用的是简单的O(n)方法。首先维护两个数,当前的最大(max)和最小值(min)。对于n个数,每读入一个数就进行判断,判断其是否大于当前最大值,或小于当前最小值。(为了保证第一次能正常更新,需要将max:=INF,min:=-INF)若是,则更新最大或最小值。显而易见,一旦出现更小的值或更大的值,算法都可以保证将其计入已知极值。这样,当输入结束时,max和min就是当前的最大和最小值。
Program max_min; Var max,min,n,a,i:longint; Begin readln(n); max:=-maxlongint; min:=maxlongint; for i:=1 to n do begin read(a); if a>max then max:=a; if a<min then min:=a; end; writeln(min,' ',max); End.