鱼C论坛

 找回密码
 立即注册
查看: 2186|回复: 16

[已解决]比较大小

[复制链接]
发表于 2021-10-2 21:59:24 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main()
{
        int x = -3, y = 2;

        if(x>y);
            x = -x;
        if(x<y)
            y = -y;
        printf("x=%d,y=%d\n", x, y);
}

为什么输出是x=3,y=2
最佳答案
2021-10-2 22:21:01
一弦丶 发表于 2021-10-2 22:04
-3不是小于2吗那不是不执行 x = -x;了吗


认真一点

if(x>y);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-2 22:01:30 | 显示全部楼层
if(x>y);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-2 22:04:09 | 显示全部楼层

-3不是小于2吗那不是不执行 x = -x;了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 22:21:01 | 显示全部楼层    本楼为最佳答案   
一弦丶 发表于 2021-10-2 22:04
-3不是小于2吗那不是不执行 x = -x;了吗


认真一点

if(x>y);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 22:37:17 | 显示全部楼层
if(x>y);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 22:57:03 | 显示全部楼层
本帖最后由 WSLJSGSRFXL 于 2021-10-2 23:02 编辑

#include <stdio.h>

int main() {
        int x = -3, y = 2, a, b;
        if (x > y);
        a = -x;
        if (x < y);
        b = -y;
        printf("a=%d,b=%d\n", a, b);
}

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

使用道具 举报

发表于 2021-10-2 23:04:15 | 显示全部楼层

你说为啥没;结果就不正确呢,为哈不提醒有错呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 23:05:15 | 显示全部楼层
WSLJSGSRFXL 发表于 2021-10-2 23:04
你说为啥没;结果就不正确呢,为哈不提醒有错呢

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

使用道具 举报

发表于 2021-10-2 23:09:25 | 显示全部楼层
WSLJSGSRFXL 发表于 2021-10-2 23:04
你说为啥没;结果就不正确呢,为哈不提醒有错呢

我的意思是这条语句后面没有分号
你加了分号没有错误提示是因为 这样没有语法错误
那个位置可以加分号,只是加了分号不会是你想要的结果
还有,警告算吗?
$ cat main.c
#include <stdio.h>
int main()
{
        int x = -3, y = 2;

        if(x>y);
            x = -x;
        if(x<y)
            y = -y;
        printf("x=%d,y=%d\n", x, y);
}
$ gcc  -g -Wall -o main main.c
main.c: In function ‘main’:
main.c:6:9: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
    6 |         if(x>y);
      |         ^~
main.c:7:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
    7 |             x = -x;
      |             ^
$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-10-3 07:39:23 | 显示全部楼层
人造人 发表于 2021-10-2 23:09
我的意思是这条语句后面没有分号
你加了分号没有错误提示是因为 这样没有语法错误
那个位置可以加分号 ...

VS连警告也没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 07:54:00 | 显示全部楼层
#include <stdio.h>
int main()
{
        int x = -3, y = 2;

        if(x>y){
            x = -x;
        }
        if(x<y){
            y = -y;
        }
        printf("x=%d,y=%d\n", x, y);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 08:56:51 | 显示全部楼层

gcc 如果不加 -Wall 选项,也没有警告
在设置中找一找,vs 中应该有 gcc 的 -Wall 对应的选项
我这边没有 vs,没办法帮你测试了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 08:58:10 | 显示全部楼层
#include <stdio.h>

int main()
{
    int x = -3, y = 2;
    printf("x = %d, y = %d\n", (x>y) ? -x, y : x, -y);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 09:00:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 10:12:27 | 显示全部楼层
人造人 发表于 2021-10-3 09:00
https://blog.csdn.net/qq_29487981/article/details/86165554

警告级别开到最大

设完警告一大堆
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 10:54:31 | 显示全部楼层
jhq999 发表于 2021-10-3 10:12
设完警告一大堆

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

使用道具 举报

发表于 2021-10-3 11:44:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 00:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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