搜索
查看: 189|回复: 3
打印 上一主题 下一主题

这是为什么啊

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2019-4-6 22:24:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
这是同个用途的代码,都是检测输入值为奇数时输出后三个数,偶数时输出前三个。为什么一个报错一个能运行,没黄色警戒线的能运行

12.png (13.11 KB, 下载次数: 3)

12.png

13.png (13.38 KB, 下载次数: 2)

13.png
沙发
 楼主| 发表于 2019-4-6 22:25:51 | 只看该作者
说错,是判断偶数时后三个数,奇数时前三个数
板凳
发表于 2019-4-6 23:06:56 | 只看该作者
把8、9、10行和12、13、14行分别用{ }括起来。否则,只能执行if下面的第一行。
地板
发表于 2019-4-7 12:46:43 | 只看该作者
首先,我想要对你所说的”前面一个报错,后面一个能运行“表示怀疑。按理来说,你应该两个程序都不能运行才对。
第一个程序的代码有两个错误,一个是if和else的问题,另一个是sleep的问题。
第二个程序的代码有一个错误,sleep的问题。
sleep这个函数根本就不存在,c++只有一个Sleep函数。而且,这个函数在头文件windows.h里面,所以你必须写上#include<windows.h>
而对于if和else,想必你是不明白if和else的使用方法。建议你去学一下。
if的后面以及else的后面都是只能够接一条语句的,比如说。
if(a%2==0)
    printf("%d\n",a);
但是如果你这么写:
if(a%2==0)
    printf("%d ",a);
    printf("%d",a+1);
由于if本身的性质,上面这个代码和下面这个代码无异:
if(a%2==0)
    printf("%d ",a);
printf("%d",a+1);
你要注意,我们平时在写c++代码的时候,之所以采用缩进,不是因为只有缩进代码才是正确的,而是应该缩进之后的代码看起来舒服而已。所以,是否缩进对程序的编译时没有影响的。
如果你想要在if后面接多个语句,那么就应该像下面一样,用大括号括起来。if(a%2==0)
{
    printf("%d ",a);
    printf("%d",a+1);
}
只有用大括号才能在if后面接多个语句。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表