鱼C论坛

 找回密码
 立即注册
查看: 780|回复: 12

[已解决]哇,哪里出错了

[复制链接]
发表于 2020-3-18 10:12:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*
  2. 2020年3月18日09:53:26
  3. Aim ot:do dosks
  4. dosk:有一符号函数:y=-1(x<0),y=0(x=0) ,y=-1(x>0),从键盘上输入x的值,输出对应的值
  5. */
  6. #include <stdio.h>

  7. int main (void)

  8. {
  9.         float x;
  10.         int y;
  11.         printf("请输出x的值:");
  12.         scanf("%f",&x);
  13.         if(x>0)
  14.            y=1;
  15.            else
  16.              if(x=0)
  17.                 y=0;
  18.              else
  19.                 y=-1;
  20.         printf("x的值为:%.1f  y的值为:%d",x,y);
  21.         return 0;
  22. }
  23. /*
  24. 出现问题:
  25. 输入负数时,x的值为零
  26. 输出结果为:
  27. ——————————————
  28. 请输出x的值:-1
  29. x的值为:0.0  y的值为:-1
  30. ——————————————
  31. */
复制代码


出现问题:
输入负数时,x的值为零
最佳答案
2020-3-18 10:23:13
if(x=0) ===》》 if (x == 0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 10:18:24 | 显示全部楼层
x的值为:lf
是lf,不是1f。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:21:27 | 显示全部楼层
qiuyouzhi 发表于 2020-3-18 10:18
x的值为:lf
是lf,不是1f。。

不是的,我写的是if
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 10:23:13 | 显示全部楼层    本楼为最佳答案   
if(x=0) ===》》 if (x == 0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 10:23:46 | 显示全部楼层

我说的是最后一个printf里的。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:25:11 | 显示全部楼层
qiuyouzhi 发表于 2020-3-18 10:23
我说的是最后一个printf里的。。。。

哦哦,那个是只显示一位小数,我试过了取消也一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:26:53 | 显示全部楼层
chxchxkkk 发表于 2020-3-18 10:23
if(x=0) ===》》 if (x == 0)

谢谢啦,是这里出了问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 10:27:06 | 显示全部楼层
本帖最后由 墨羽岚 于 2020-3-18 10:28 编辑

你的(x=0)改成(x==0)!!!
还有那个printf里面应该是要输入一个数而不是输出(估计是你手误了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 10:27:18 | 显示全部楼层
这行出错了:

if(x=0)

'='表示赋值,是将左边的变量赋给右面的值,
它的返回值是你赋给的左边的变量的值,你赋的是0,
所以会执行 y=-1;

'==' 才是表示一个变量是否等于某个值,所以代码应该是这样的:
  1. #include <stdio.h>

  2. int main (void)

  3. {
  4.         float x;
  5.         int y;
  6.         printf("请输出x的值:");
  7.         scanf("%f",&x);
  8.         if(x>0)
  9.            y=1;
  10.            else
  11.              if(x==0)
  12.                 y=0;
  13.              else
  14.                 y=-1;
  15.         printf("x的值为:%.1f  y的值为:%d",x,y);
  16.         return 0;
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:27:32 | 显示全部楼层
qiuyouzhi 发表于 2020-3-18 10:23
我说的是最后一个printf里的。。。。

谢谢你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:30:26 | 显示全部楼层
墨羽岚 发表于 2020-3-18 10:27
你的(x=0)改成(x==0)!!!
还有那个printf里面应该是要输入一个数而不是输出(估计是你手误了)

谢谢!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 10:31:22 | 显示全部楼层
lixiangyv 发表于 2020-3-18 10:27
这行出错了:

if(x=0)

谢谢,犯了一些经验错误,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 11:47:29 | 显示全部楼层
chxchxkkk 发表于 2020-3-18 10:23
if(x=0) ===》》 if (x == 0)

哈哈哈,视屏讲到这里特别提醒了会出现这种错误的,我也看了半天没有看出来,高手啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 05:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表