【发布时间】:2015-03-14 12:40:21
【问题描述】:
我尝试编写一个简单的程序来比较 3 个数字并打印其中最大的一个,但它一直打印所有 3 个数字,我不明白为什么。这是我的代码:
#include <stdio.h>
int main()
{
int x = 10;
int y = 8;
int z = 3;
if((x > y) && (x > z));
{
printf("%d",x);
}
if((y > x) && (y > z));
{
printf("%d",y);
}
if((z > x) && (z > y));
{
printf("%d",z);
}
return 0;
}
感谢您的帮助!
【问题讨论】:
-
不要将分号放在
if语句的末尾。 -
if语句的末尾有分号。所以你说if (something) empty_statement,然后你的printf块被任何if测试不合格。 IOW,它们每次都会执行,因为没有与之关联的条件测试。
标签: c if-statement