这个题老提示floating point error,到底哪里错了啊?

#include<stdio.h>
double fun(double x);
main()
{
double a,b;
scanf("%f",&a);
b=fun(a);
printf("%f\n",b);
}

double fun(double x)
{
double y;
if (x<-1)
y=x*x-1;
else
if (x<=1)
y=x*x;
else
y=x*x+1;
return(y);
}

慕尼黑5688855
浏览 144回答 3
3回答

九州编程

scanf("%f",&a);%f代表是float类型,与定义的double类型不合。

波斯汪

scan()函数中:%f对应是float类型,%lf对应的是 double类型printf()函数中:%f即对应float类型也对应double类型#include<stdio.h>double fun(double x);main(){double a,b;scanf("%lf",&a);b=fun(a);printf("%f\n",b);}double fun(double x){double y;if (x<-1)y=x*x-1;elseif (x<=1)y=x*x;elsey=x*x+1;return(y);}结果:输入:10显示:101

慕的地10843

%f改成%lf看看
打开App,查看更多内容
随时随地看视频慕课网APP