鱼C论坛

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

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

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

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

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

x
/*
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的值为:%.1f  y的值为:%d",x,y);
        return 0; 
}
/*
出现问题:
输入负数时,x的值为零 
输出结果为:
——————————————
请输出x的值:-1
x的值为:0.0  y的值为:-1
—————————————— 
*/

出现问题:
输入负数时,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)改成[b](x==0)[/b]!!!
还有那个printf里面应该是要输入一个数而不是输出(估计是你手误了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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的值为:%.1f  y的值为:%d",x,y);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> 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, 2025-1-15 20:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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