C语言中的小问题

2025-12-17 12:47:39
推荐回答(5个)
回答1:

情况应该是这样的:
1.scanf("%.2f",&x); 这句改为:scanf("%f", &x);
输入y时一样修改.
scanf似乎不支持你写的方式.

2.关于浮点数判断是否等于0也不能简单的==.
因为浮点数本身是一个近似值,在有些机器上下面的语句可能永远不会成立
if(x == 0)
应该这样比较
if(fabs(x) < 0.0000001)//你可以任意和一个很小的值比较,这取决于你的需要.

3.最后一个if语句有误,它和判断第一象限的代码相同.

回答2:

我的结果是“第一象限第四象限”。我建议在第一次scanf之后使用fflush(stdin)将标准输入清空,不然y得到的总是那个回车吧,都不回让你输入就over了。
另外,你的一四象限是一样的判断语句。
x=0是y轴,y=0是x轴。
同意一楼,改为double格式,然后scanf(“lf”,。。。)这样没问题。
使用float的话去掉“.2”也还行

回答3:

scanf("%.2f",&x); 改成scanf("%f",&x);
scanf("%.2f",&y); 改成scanf("%f",&y);

if(x>0&&y>0)
printf("第四象限");
}
条件写错了,y<0

回答4:

别在WINTC里用scanf读取类型为float的浮点数,可以考虑用double,然后scanf("%lf"...

回答5:

scanf 不支持 "%.2f" 来限制输入的浮点数精度的用法,那种用法只能在输出的时候用

用 scanf("%f",&x) 来输入。