问个C语言的很菜排序

来源:百度知道 编辑:UC知道 时间:2024/09/23 08:22:18
#include <stdio.h>
#include <stdlib.h>

int Max(float *a,float *b)
{
if(a>b)
{ float c=*a;
*a=*b;
*b=c ;
return(*a,*b);
}

}
int main()
{ float a,b,c;
scanf("%f%f%f",&a,&b,&c);
Max(*a,*b);
Max(*b,*c);
Max(*a,*b);

printf("%f%f%f",a,b,c);
system("PAUSE");
return 0;
}
为什么排出来不对
错了,,,,那Max里的*应该是&
但是这样还是不对

//看了LZ的程序,感觉好奇怪:在main()中a,b,c又不是指针,*a,*b,*c算什么???……

修改如下:
#include <stdio.h>
#include <stdlib.h>

void Max(float *a, float *b)
{
if(*a > *b)
{ float c = *a;
*a = *b;
*b = c ;
}
}
int main()
{ float a, b, c;
scanf("%f%f%f",&a, &b, &c);
Max(&a,&b);/*传地址过去,直接操作地址空间,无需返回就可改变其值(这就是,为什么Max没有return语句的原因)!*/
Max(&b,&c);
Max(&a,&b);

printf("%f%f%f",a, b, c);
system("PAUSE");
return 0;
}

很久没碰c了,没有试,但LZ不妨试试,应该没问题~

#include <stdio.h>
void Max(float *a,float *b)
{
if(*a>*b)
{ float c=*a;
*a=*b;
*b=c ;

}

}
int main()
{ float a,b,c;
scanf("%f%f%f",&a,&b,&c);
Max(&a,&b);
Max(&b,&c);
Max(&a,&b);

printf(&qu