[求助]求三个数中最大数与最小数,错在哪里?
#include "stdio.h" float f1,f2; float max(a,b,c) float *a,*b,*c; { if(*a>*b) {if(*a>*c) f1=*a; else f1=*c; } else {if(*b>*c) f1=*b; else f1=*c; }
if(*a<*b) {if(*a<*c) f2=*a; else f2=*c; } else {if(*b<*c) f2=*b; else f2=*c; } } main() {float x,y,z; scanf("%f%f%f",&x,&y,&z); max(&x,&y,&z); printf("%f\n%f",f1,f2); getch(); }
----------------解决方案--------------------------------------------------------
float max(a,b,c)
float *a,*b,*c;
把这改一下试试:
float max(int *a,int *b,int *c)
----------------解决方案--------------------------------------------------------
应该改为 void max(float *a,float *b,float *c) ;
----------------解决方案--------------------------------------------------------
运行成功,感谢WORKHARD及灌水狂人。
----------------解决方案--------------------------------------------------------
max函数根本没有返回值啊,行参没有定义类型
----------------解决方案--------------------------------------------------------
其实这样也可行了!
#include<stdio.h>
main()
{
int a,b,c,max,min;
printf("Please input three numbers:");
scanf("%d%d%d",&a,&b,&c);
max=a>(b>c?b:c)?a:(b>c?b:c);
min=a<(b<c?b:c)?a:(b<c?b:c);
printf("max is:%d min is:%d",max,min)
}
----------------解决方案--------------------------------------------------------