HUSTOJ 1023: 最大值和最小值
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 ",max,min); return 0; } </span>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。