C语言,调用自定义函数对3个数排序,我的为什么排不出来?

2024-12-04 06:59:12
推荐回答(3个)
回答(1):

#include
float sort(float *a,float *b,float *c)
{
float m;
if(*a>*b)
{
m=*a;
*a=*b;
*b=m;
}
if(*a>*c)
{
m=*a;
*a=*c;
*c=m;
}
if(*b>*c)
{
m=*b;
*b=*c;
*c=m;
}
return 0;
}
void main()
{
float i,j,k;
printf("Input three numbers:\n");
scanf("%f%f%f",&i,&j,&k);
sort (&i,&j,&k);
printf("The sorted number is:\n%f\n%f\n%f\n",i,j,k);
}

修改成这样就可以了。你的函数在传递的时候是传值进去,原先的i、j、k并不会改变值。

回答(2):

float sort(float a,float b,float c)
//上面改为下面即可。
float sort(float &a,float &b,float &c)

回答(3):

程序有问题,sort函数全部是值传递,i、j、k的值不会发生任何变化