//依次输入三个数,将他们按从大到小的顺序输出
#include <stdio.h>
#include <stdlib.h>
float max(float x,float y);
int main()
{
float a,b,c,t;
printf("please input:");
scanf("%f",&a,&b,&c);
max(a,b);
max(a,c);
max(b,c);
printf("%
float max(float x,float y)
{
float temp;
if(x<y){
temp=x;
x=y;
y=temp;
}
}
f不能重复,所以scanf和printf我都删了2个
值参是不能修改玩不传入变量值的,用指针吧
float max(float* x,float* y);
float max(float* x,float* y)
{
if(*x < *y)
{
float temp = *x;
*x = *y;
*y = temp;
}
}
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
void max(float* x, float* y);
int main()
{
float a, b, c, t;
printf("please input:");
scanf("%f%f%f", &a, &b, &c);
max(&a, &b);
max(&a, &c);
max(&b, &c);
printf("%f %f %f\n", a, b, c);
return 0;
}
void max(float* x, float* y)
{
float temp;
if (*x < *y) {
temp = *x;
*x = *y;
*y = temp;
}
}
并没有记录max函数的返回值,而是仅仅做了个大小比较而已,当然输出的还是输入的数据了,改为按地址作为max的变量就OK了
将float max(float x,float y)值传递改为
float max(float &x,float &y)引用传递即可
max函数的参数改为地址或者指针