如何一次循环就同时得到最大值和最小值
程序说明:以下是求某数组中元素极值的一个程序main()
{
int a[9]={5,7,4,2,8,10,6,9,1};
int min, x; //定义最小值及其下标
int max, d; //定义最大值及其下标
int i;
min = a[0]; //将最小值暂定为第1个元素
for(i=1;i<=8;i++) //发现比a[0]小的元素,就将这个元素定为最小并记录其下标
{
if (min>a[i])
{
min = a[i];
x = i;
}
}
max = a[8]; //将最小值暂定为第9个元素
for(i=7;i>=0;i--) //发现比a[8]小的元素,就将这个元素定为最大并记录其下标
{
if (max<a[i])
{
max = a[i];
d = i;
}
}
printf ("%d %d %d %d\n", x, min, d, max);
}
问题:这个程序需要分别进行循环才能得出结果,如何能一次循环就同时得到最大值和最小值,请帮忙优化一下,谢谢!
最主要的要求是能够提高程序效率!!!