比较大小
#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 if(x>y); jhq999 发表于 2021-10-2 22:01
if(x>y);
-3不是小于2吗那不是不执行 x = -x;了吗
一弦丶 发表于 2021-10-2 22:04
-3不是小于2吗那不是不执行 x = -x;了吗
认真一点
if(x>y); if(x>y); 本帖最后由 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);
}
人造人 发表于 2021-10-2 22:21
认真一点
if(x>y);
你说为啥没;结果就不正确呢,为哈不提醒有错呢 WSLJSGSRFXL 发表于 2021-10-2 23:04
你说为啥没;结果就不正确呢,为哈不提醒有错呢
萌新问问
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;
| ^
$
人造人 发表于 2021-10-2 23:09
我的意思是这条语句后面没有分号
你加了分号没有错误提示是因为 这样没有语法错误
那个位置可以加分号 ...
VS连警告也没有{:5_104:} #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);
} jhq999 发表于 2021-10-3 07:39
VS连警告也没有
gcc 如果不加 -Wall 选项,也没有警告
在设置中找一找,vs 中应该有 gcc 的 -Wall 对应的选项
我这边没有 vs,没办法帮你测试了
#include <stdio.h>
int main()
{
int x = -3, y = 2;
printf("x = %d, y = %d\n", (x>y) ? -x, y : x, -y);
return 0;
} jhq999 发表于 2021-10-3 07:39
VS连警告也没有
https://blog.csdn.net/qq_29487981/article/details/86165554
警告级别开到最大
人造人 发表于 2021-10-3 09:00
https://blog.csdn.net/qq_29487981/article/details/86165554
警告级别开到最大
设完警告一大堆{:5_104:} jhq999 发表于 2021-10-3 10:12
设完警告一大堆
人造人 发表于 2021-10-3 10:54
{:5_109:}
页:
[1]