鱼C论坛

 找回密码
 立即注册
查看: 2425|回复: 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);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-2 22:01:30 | 显示全部楼层
if(x>y);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

-3不是小于2吗那不是不执行 x = -x;了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


认真一点

if(x>y);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 22:37:17 | 显示全部楼层
if(x>y);
小甲鱼最新课程 -> https://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);
}

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你说为啥没;结果就不正确呢,为哈不提醒有错呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

萌新问问
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  6.         if(x>y);
  7.             x = -x;
  8.         if(x<y)
  9.             y = -y;
  10.         printf("x=%d,y=%d\n", x, y);
  11. }
  12. $ gcc  -g -Wall -o main main.c
  13. main.c: In function ‘main’:
  14. main.c:6:9: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
  15.     6 |         if(x>y);
  16.       |         ^~
  17. main.c:7:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
  18.     7 |             x = -x;
  19.       |             ^
  20. $
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

VS连警告也没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  5.         if(x>y){
  6.             x = -x;
  7.         }
  8.         if(x<y){
  9.             y = -y;
  10.         }
  11.         printf("x=%d,y=%d\n", x, y);
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

gcc 如果不加 -Wall 选项,也没有警告
在设置中找一找,vs 中应该有 gcc 的 -Wall 对应的选项
我这边没有 vs,没办法帮你测试了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  2. int main()
  3. {
  4.     int x = -3, y = 2;
  5.     printf("x = %d, y = %d\n", (x>y) ? -x, y : x, -y);
  6.     return 0;
  7. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 09:00:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

警告级别开到最大

设完警告一大堆
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-3 11:44:31 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-28 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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