求三个数最大数的程序.为什么结果不对?

来源:百度知道 编辑:UC知道 时间:2024/06/12 00:54:38
#include<stdio.h>
double tmax(double x,double y,double z){
if(x>y){if(x>z) return x; else return z;}
else {if(y>z) return y; else return z;}}
void main()
{double x,y,z;
scanf("%f,%f,%f",&x,&y,&z);
printf("tmas is %f.\n",tmax(x,y,z));}

经过修改之后的:
#include<stdio.h>
double tmax(double x,double y,double z)
{
if(x>y)
{if(x>z)
return(x);
else return (z);}
else
{if(y>z)
return y;
else return (z);}
}

void main()
{double x,y,z;
scanf("%lf,%lf,%lf",&x,&y,&z);
printf("tmas is %f.\n",tmax(x,y,z));
}
无法正确的显示,是因为double函数的格式字符是lf,在输出的时候%f和%lf结果一样,但在输入的时候 scanf("%lf,%lf,%lf" 必须要用lf,这样才能正确输出。
楼主可以自己验证下,比较下两个程序的区别。

得到