想知道这个哪里有问题
题目是:f(x)=1/x+绝对值xx>20f(x)=根号3x-2 10<=x<=20
f(x)=x*x+3*x+2 x<10
#include <stdio.h>
#include <math.h>
int main()
{
int x;
double f;
scanf("%d",&x);
if (x<10)
{
f=x*x+3*x+2;
printf("%.2f\n",f);
}
else if (10<=x<=20)
{
f=sqrt(3*x)-2;
printf("%.2f\n",f);
}
else if (x>20)
{
f=1/x+abs(x);
printf("%f\n",f);
}
return 0;
}
输入100时跳出10.25?
中间的else if改为(x >= 10 && x <= 20) 注释地方是改动过的
#include <stdio.h>
#include <math.h>
int main()
{
double x; //
double f;
scanf("%lf", &x); //
if (x < 10)
{
f = x * x + 3 * x + 2;
printf("%.2lf\n", f);
}
else if (x >= 10 && x <= 20)//
{
f = sqrt(3 * x) - 2;
printf("%.2lf\n", f);
}
else if (x > 20)
{
f = 1 / x + abs(x);
printf("%lf\n", f);
}
return 0;
} #include <stdio.h>
#include <math.h>
double foo(int x){ return x > 20 ? 1./x + fabs(x) : x >= 10 ? sqrt(3. * x) - 2 : x * x + 3 * x + 2; }
int main(){
int x;
double f;
scanf("%d", &x);
f = foo(x);
printf("%.4lf", f);
return 0;
}
页:
[1]