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\n",max,min);
   return 0;
}
</span>


你可能感兴趣的:(算法,ACM,HUSTOJ)