哇,哪里出错了
/*2020年3月18日09:53:26
Aim ot:do dosks
dosk:有一符号函数:y=-1(x<0),y=0(x=0) ,y=-1(x>0),从键盘上输入x的值,输出对应的值
*/
#include <stdio.h>
int main (void)
{
float x;
int y;
printf("请输出x的值:");
scanf("%f",&x);
if(x>0)
y=1;
else
if(x=0)
y=0;
else
y=-1;
printf("x的值为:%.1fy的值为:%d",x,y);
return 0;
}
/*
出现问题:
输入负数时,x的值为零
输出结果为:
——————————————
请输出x的值:-1
x的值为:0.0y的值为:-1
——————————————
*/
出现问题:
输入负数时,x的值为零 x的值为:lf
是lf,不是1f。。 qiuyouzhi 发表于 2020-3-18 10:18
x的值为:lf
是lf,不是1f。。
不是的,我写的是if
if(x=0) ===》》 if (x == 0) 一只程序猫 发表于 2020-3-18 10:21
不是的,我写的是if
我说的是最后一个printf里的。。。。
qiuyouzhi 发表于 2020-3-18 10:23
我说的是最后一个printf里的。。。。
哦哦,那个是只显示一位小数,我试过了取消也一样 chxchxkkk 发表于 2020-3-18 10:23
if(x=0) ===》》 if (x == 0)
谢谢啦,是这里出了问题
本帖最后由 墨羽岚 于 2020-3-18 10:28 编辑
你的(x=0)改成(x==0)!!!
还有那个printf里面应该是要输入一个数而不是输出(估计是你手误了) 这行出错了:
if(x=0)
'='表示赋值,是将左边的变量赋给右面的值,
它的返回值是你赋给的左边的变量的值,你赋的是0,
所以会执行 y=-1;
'==' 才是表示一个变量是否等于某个值,所以代码应该是这样的:
#include <stdio.h>
int main (void)
{
float x;
int y;
printf("请输出x的值:");
scanf("%f",&x);
if(x>0)
y=1;
else
if(x==0)
y=0;
else
y=-1;
printf("x的值为:%.1fy的值为:%d",x,y);
return 0;
} qiuyouzhi 发表于 2020-3-18 10:23
我说的是最后一个printf里的。。。。
谢谢你了{:5_109:} 墨羽岚 发表于 2020-3-18 10:27
你的(x=0)改成(x==0)!!!
还有那个printf里面应该是要输入一个数而不是输出(估计是你手误了)
谢谢!!!!
lixiangyv 发表于 2020-3-18 10:27
这行出错了:
if(x=0)
谢谢,犯了一些经验错误,谢谢你 chxchxkkk 发表于 2020-3-18 10:23
if(x=0) ===》》 if (x == 0)
哈哈哈,视屏讲到这里特别提醒了会出现这种错误的,我也看了半天没有看出来,高手啊
页:
[1]