急 看看这个程序有什么可以改进的地方吗?

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:29:10
#include<stdio.h>
main()
{
double a[9]={1,6,0,2,5,1,7,1,9};
int i;
double *p,*q,max,min;

if (a[0]>a[1])
{
max=a[0];
p=&a[0];
min=a[1];
q=&a[1];
}
else
{
max=a[1];
p=&a[1];
min=a[0];
q=&a[0];
}

for(i=2;i<9;i++)
{
if(a[i]>max)
p=&a[i];

else if (a[i]<min)
q=&a[i];

}
printf("%lf\n%lf\n%d",*p,*q,p-q);

}
一楼的大哥,你知道你改后又一个漏洞吗?就是如果你把数组最后一个改成不是最大的一个值,结果也会是最后一个值....
循环不对阿

#include<stdio.h>
main()
{
double a[9]={1,6,0,2,5,1,7,1,9};
int i;
double *p,*q,max,min
for(i=1;i<9;i++)
{
if (a[i-1]>a[i])
{
max=a[i-1];
p=&a[i-1];
min=a[i];
q=&a[i];
}
else
{
max=a[i];
p=&a[i];
min=a[i-1];
q=&a[i-1];
}
}
printf("%lf\n%lf\n%d",*p,*q,p-q);
}