在学函数指针数组的时候想到写一个对double类型数组可以自主选择顺序逆序排序的代码,发现逆序的时候最大值始终为零,而顺序的时候就正常,麻烦大家帮我看看
#include
#include
#include
#define max 5
void print(double data[]);
void upsort(double data[]);
void downsort(double data[]);
void (*ptr[2])(double data[]);
int main()
{
double x[max+1];
int count;
for(count=0;countprintf("enter the double%d:",count);
scanf("%lf",&x[count]);
getchar();
}
puts("enter the number 1 or 0 to choose the upsort or downsort");
ptr[0]=downsort;
ptr[1]=upsort;
int ch;
scanf("%d",&ch);
if(ch==0||ch==1)
{
ptr[ch](x);
print(x);
}
else
{
puts("error");
exit(1);
}
return 0;
}
void print(double data[])
{
int count;
for(count=0;countprintf("%lf\n",data[count]);
}
}
void upsort(double data[])
{
int a,b;
double i;
for(a=0;afor(b=0;bif(data[b]>data[b+1])
{
i=data[b];
data[b]=data[b+1];
data[b+1]=i;
}
}
}
}
void downsort(double data[])
{
int a,b;
double i;
for(a=0;afor(b=0;bif(data[b]1])
{
i=data[b];
data[b]=data[b+1];
data[b+1]=i;
}
}
}
}
for(a=0;a<max-1;a++)
{
for(b=0;b<max-i-1;b++)
{
if(data[b]<data[b+1])
{
i=data[b];
data[b]=data[b+1];
data[b+1]=i;
}
}
}