函数调用中类型的问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 12:10:53
#include <stdio.h>
void main()
{int max(int A,int B,int C);
int a,b,c,x;
printf("请输入三个数a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
x=max(a,b,c);
printf("最大值为:%d\n",x);
}
int max(int A,int B,int C)
{int m;
m=(A>B?A:B);
m=(m>C?m:C);
return m;
}这个程序正常运行,但如果将程序中所有的int改为float,结果输出为0,这是为什么?我想比较实型数据,应该怎么办?我是在VC++6中运行的.

用float下面这句

scanf("%d%d%d",&a,&b,&c);

就要改成

scanf("%f%f%f",&a,&b,&c);

%d是整数,%f是float浮点数

改为float后应该也能运行啊,你改的时候把输入输出时候的%d改为%f了没有?

变量、函数返回值类型改变之后,相应的输入、输出格式控制符也要改变!

#include <stdio.h>
main()
{float max(float A,float B,float C);
float a,b,c,x;
printf("请输入三个数a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
x=max(a,b,c);
printf("最大值为:%f\n",x);
}
float max(float A,float B,float C)
{float m;
m=(A>B?A:B);
m=(m>C?m:C);
return m;
}
//除了把int改成float,还要把%d改成%f,我在试过运行没有错误