Description
任意输入n个整数,把它们的最大值,最小值求出来.
Input
输入只有一行,包括一个整数n(1<=n<=20),后面跟着n个数.
Output
输出只有一行,包括2个整数。
Sample Input
5 1 99 3 6 0
Sample Output
99 0
算法思想:这是一个比较简单的题目,然而这个题目里面有一个比较容易让人忽略的知识。就是
初始赋值时,MAX,MIN的赋值。因为是查找最大值和最小值。所以MAX应该是int类型的最小值,对
应的MIN应该就是int类型的最大值。用代码表示就是:int max=0x8fffffff,min=0x7fffffff;
0x8fffffff是32位二进制数所表示的最小负数,而0x7fffffff是32位二进制数表示的最大正数。
完整代码如下:
<span style="font-family:Times New Roman;">#include<cstdio>
#include<cassert>
#define N 3
int main(){
int num,i,*p;
int max=0x8fffffff,min=0x7fffffff;
scanf("%d",&num);
assert(num>=1 && num<=20);
p=new int[num];
for(i=0;i<num;i++)
scanf("%d",&p[i]);
for(i=0;i<num;i++){
if(max<p[i])
max=p[i];
if(min>p[i])
min=p[i];
}
delete p;
printf("%d %d\n",max,min);
return 0;
}
</span>