int main() {int a; scanf("%d",&a); if (a%2==1) { printf("%d ",a+1); printf("%d ",a+2); printf("%d ",a+3); } if (a%2==0) { printf("%d ",a-1); printf("%d ",a-2); printf("%d ",a-3); } sleep(5000); return 0; } |
|
||||||||||
额。我学习啦 。我也没明白。 |
看来你没理解分号的作用,分号代表一个语句完成了!所以你的if后面接个printf就表示if只管理一个printf,但是程序要顺序执行,所以除了判断a为偶数的那个if后面的printf没执行,都执行了!你应该把if的作用域用大括号括起来!代码如下! #include <stdio.h> #include <stdlib.h> int main() { int a; scanf("%d",&a); if (a%2==1) { printf("%d",a+1); printf("%d",a+2); printf("%d",a+3); } if (a%2==0) { printf("%d",a-1); printf("%d",a-2); printf("%d",a-3); } sleep(5000); return 0; } |
先占个位置在说; |
if语句中 不止包含一个语句,因此要加括号。 #include <stdio.h> #include <stdlib.h> int main() { int a; scanf("%d",&a); if (a%2==1) { printf("%d",a+1); printf("%d",a+2); printf("%d",a+3); } if (a%2==0) { printf("%d",a-1); printf("%d",a-2); printf("%d",a-3); } sleep(5000); return 0; } |