c语言分段函数的计算 c语言分段函数计算电费

c语言 分段函数求值

你这个题是ACM的题目?我看了下你的程序,正经的数字是可以的,但你说错了,那就该就是要考虑极限情况了。譬如x=0.0000000000000000000000000000000001的时候,你的程序输出是100.0。。。。。应该就是出错在这里了。

创新互联-专业网站定制、快速模板网站建设、高性价比萝北网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式萝北网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖萝北地区。费用合理售后完善,十多年实体公司更值得信赖。

还有我的老师告诉我,使用float不要用x==0这种表达方式,,因为float类型的等于其实就是在有限的位数上比较大小。。。当数字极小或者极大的时候就会出现不相等的数字会出现相等的情况了。

换成double就行了

#include "stdio.h"

void main()

{

double a=0.0;

while(scanf("%lf",a)!=EOF)

{

if(a0)

{

a=a*a+1;

}

else if(a0)

{

a=-a;

}

else if(a==0)

{

a=100.0;

}

printf("%.1lf\n",a);

a=0.0;

}

}

c语言求分段函数

试试改成这样吧:

#includestdio.h

int main()

{

float x,y;

scanf("%f",x);

if(x20)

{

y=x+100;

}

else

if(x=20x=100)

{

y=x;

}

else

y=x-100;

printf("x=%f,y=%f\n",x,y);

return 0;

}

问题似乎在于变量x,y的类型,应该是浮点型小数float,而不是整型int

希望能帮到你

C语言分段函数的计算问题

我去,谁告诉你else是那么写的啊。。。这么简单的if ... else if ... else好像很多同学都不明白

else

{

flag = -1;

}

这个问题我在7.1讲里专门强调一下吧

另外,scanf估计你也不会用,

你写成这样:

scanf("%lf", x);

具体请参考优酷上的" C语言指南 "的第2.2讲,里面说的够清楚了。。。正在上传此段教程。


名称栏目:c语言分段函数的计算 c语言分段函数计算电费
URL分享:http://pwwzsj.com/article/dogjjhg.html