最大、最小值
当出现比较的时候,一般不能通过所有数据的原因是,你定义的maxv在与结果比较时,反而会比结果要大,使得最终输出的结果不正确。
因此,很关键的时对maxv和minv的赋值,如下所示:
错误示范:
//当最终结果a[10]的值为-2147483641时
int maxv=-100000;
for(int i=0;i<n;i++){
maxv=max(a[i],maxv); //显然a[10],使得最终结果并不正确
}
printf("%d",maxv);
正确示范:
头文件#include<climits>
#include<climits>
int maxv=INT_MIN;//-2147483648
int minv=INT_MAX;//2147483647
//1、当最终结果a[10](最大)的值为-2147483641,时
for(int i=0;i<n;i++){
maxv=max(a[i],maxv); //显然a[10]>maxv,结果正确。
}
printf("%d\n",maxv);
//2、当最终结果b[10](最小)的值为2147483641,时
for(int i=0;i<n;i++){
minv=min(a[i],minv); //显然b[10]<minv,结果正确。
}
printf("%d\n",maxv);