从品牌网站建设到网络营销策划,从策略到执行的一站式服务
你这个题是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;
}
}
试试改成这样吧:
#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
希望能帮到你
我去,谁告诉你else是那么写的啊。。。这么简单的if ... else if ... else好像很多同学都不明白
else
{
flag = -1;
}
这个问题我在7.1讲里专门强调一下吧
另外,scanf估计你也不会用,
你写成这样:
scanf("%lf", x);
具体请参考优酷上的" C语言指南 "的第2.2讲,里面说的够清楚了。。。正在上传此段教程。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图