输入1-100之间偶数,这道题错在哪里呢?

输入1-100之间偶数,这道题错在哪里呢?

int a = 2;
do
{
	if (a%2==0) {
		cout << a << ".";
		a++;
	}
} while (a<=100);

return 0;
}

只显示一个数呢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,因为a++写在if判断中。原因:程序运行,a=2,则if判断2%2==0,为真,进入循环,输出2,a++,此时a为3,再次循环,那么根据if的判断条件,3是无法进入if内部进行++操作的,程序进入死循环。因此只输出了2。

请参考:

#include<iostream>
using namespace std;
int main(){
int a = 2;
do
{
if (a%2==0) {
cout << a << ".";
}
a++;
} while (a<=100);
 
return 0;
}

如果解决了您的问题,请采纳。祝学习愉快!

  • 喜神妹 提问者 #1
    好的谢谢,这个问题明白了,还有一点就是if里如果a为3的时候,无法进行操作,那么它怎样能继续往后循环,a为4--5--6这样
    2018-07-25 16:30:01
  • 好帮手慕查理 回复 提问者 喜神妹 #2
    您好,当执行到a=3时,程序已经死循环了,可以运行一下代码。在输出2之后,程序是一直没有结束的。祝学习愉快!
    2018-07-25 16:42:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师