请各位高手帮忙指点一下错误
菜鸟写了一个程序,找出一个数组的最大值和最小值。但是输出总是不对,比如我输入1,2,3,4,5.
输出为min=4,max=2
原因一直没有找出来,请各位高手帮帮忙吧!!
谢谢!!!
float minage(float x[]) /*求最小值*/
{
int i,j;
float t;
for(j=0;j<4;j++)
{
for(i=0;i<=5-j;i++)
{
if(x[i]>x[i+1])
{
t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
}
}
return(x[0]);
}
float maxage(float x[]) /*求最大值*/
{
int i,j;
float t;
for(j=0;j<4;j++)
{
for(i=0;i<=5-j;i++)
{
if(x[i]>x[i+1])
{
t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
}
}
return(x[4]);
}
main()
{
int i;
float min,max;
float a[5];
printf("enter 5 numbers:\n");
for(i=0;i<=4;i++)
{
scanf("%f",&a[i]);
}
min=minage(a);
max=maxage(a);
printf("min=%f\n",min);
printf("max=%f\n",max);
} for(i=0;i<=5-j;i++)改成for(i=0;i<4-j;i++);否则j=0的时候i最大可以取到5,a[5]都越界了,别说a[6]了。
只是奇怪为什么程序不down掉。。。。。。 找最大值和最小值, 排序?
如果是找最大值和最小值,弯就转得大了 哈哈
果然好用了
就是这个问题
谢谢 mqh21364!!!! 客气。。。[tk07] [tk07] [tk07] 这个题做的好复杂啊,楼主是不是刚学了函数而做的题啊
页:
[1]
