经常各种问题需要筛选最大最小值,但是,在擂台选择比较的时候,需要对max和mix初始化,因为需要选择的缘故,max可以初始化为0,但是当选择序列里有负数,这也是行不通的,对于最小值,要初始化一定要尽量大,什么是尽量大呢?
所以为了解决这个问题,初始化可以把第一个元素给他,当然,用数组的话这样是很方便的。
//SDUT 1573
#include <stdio.h>
int main()
{
float a[1010],m = 0,tmp = 0;
int n = 0,i = 0;
int p = 0,k = 0;
int no = 0;
int p1 = 0,p2 = 0;
//freopen ("1.txt","r",stdin);
scanf ("%d",&n);
for (i = 1;i <= n;i++)
{
scanf ("%d",&p);
for (k = 0;k < p - 1;k++)
{
scanf ("%f",&a[k]);
}
for (p1 = p - 1;p1 > 0;p1--)
for (p2 = 1;p2 < p1;p2++)
{
if (a[p2 - 1] > a[p2])
{
tmp = a[p2];
a[p2] = a[p2 - 1];
a[p2 - 1] = tmp;
}
}
scanf ("%f",&m);
for (k = 0;k < p - 1;k++)
{
if (m < a[k])
{
break;
}
}
if (k < p - 1)
{
printf ("Case #%d: %d\n",i,k + 1);
}else
{
printf ("Case #%d: %d\n",i,p);
}
}
return 0;
}
但是,如果没有使用数组,一定还有考虑是否还有第二个元素,在max和mix初始化的时候位置如何处理。