x>y ? x:y;

#include<stdio.h>
float max( float x, float y)
{
float z;
z = x>y ? x:y;
return z;
}

main()
{

float a;
float b;
float c;
scanf("%f, %f",&a,&b);
c = max(a,b);
printf("max is %f \n",c);
return 0;
}
当输入为1.0 2.0时输出为1.0 ,并不是预期结果,编译器是VC++6.0.
请问谁知道是怎么回事?

第1个回答  2014-01-08
x>y ? x:y; 这个是三元运算符。意思为当x>y时,返回x,反之返回y。这个返回值就是你的那个Z值。
第2个回答  2014-01-08
程序应该没错。
输入1.0, 2.0看看。注意有个逗号,要跟指定的输入格式%f, %f一致。
第3个回答  2014-01-08
你的程序没有错误 不能直接输入1.0 2.0而是输入1.0,2.0 要注意 有个逗号