重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
scanf是输入,是不可以指定精度的,所以 scanf("%.1f", x) ;这样的写法是错误的
创新互联建站主要从事成都做网站、网站制作、成都外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务鼎城,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
而且double是要用lf, 应该是scanf("%lf", x) ;
还有double ff();这个声明要和实体以及调用一致,应该是double ff( double x) ;
几个条件不同的可以用if ... else if ... else. 这样还可以少用一个变量,你那种写法不推荐
#includestdio.h
int main()
{
float x,y;
scanf("%f",x);
if(x1)
{
y=x*x;
}
else if(x=1x=10)
{
y=2*x-1;
}
else
y=3*x-11;
printf("x=%f,y=%f\n",x,y);
return 0;
}
你确定y也是0-40间的整数吗?如果是的话,那么该分段函数中的第三段计算的结果已经超出了数值范围啊;如果y的取值没有限制,那么程序如下:
#include
stdio.h
void
main
()
{
int
x,y;
scanf("%d",x);
if(x=0x10)
y=x;
else
if(x=10x20)
y=10;
else
if(x=20x40)
y=x*x+3;
else
{
printf("error:x不是0-40之间的整数!\n");
return;
}
printf("%d\n",y);
}
main函数里读取x的值的时候,要用%lf,因为x是double型,如果是float型,则是用%f。
你试试。