C++中的循环,也没有改变,依旧是while循环、do-while循环以及for循环三种,包括配合使用很多的breakcontinue使用方法上都没有什么差别,我们依旧以题来学习巩固本部分的语法。


来看训练场中1143题,判断素数的题,明白素数的概念后,很明显对于任何一个数N,都要从2开始到N-1之间依次尝试,判断是否能被N整除,来找出是否有能被N除尽的因数,如果没有则为素数了,反之则不是,那么很明显是一道循环遍历的题,C++代码如下:

#include<iostream>
using namespace std;
int main()
{
    int n,i;
    cin>>n;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            break;
    }
    if(i>=n)
        cout<<1<<endl;
    else
        cout<<0<<endl;
 
    return 0;
}


测试运行结果如下:

C++中while循环结构


老规矩,亲自上机敲代码本地测试没问题,提交通过之后再往后进行。


下面,再看一道C++中循环相关的题,由于在ACM竞赛中较为常见,也给大家列出来,题目为训练场1085题,求A+B的和的简单问题,但为多组测试数据,循环不停的接受,C++的写法如下:

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    while(cin>>a>>b)
    {
        cout<<a+b<<endl;
    }
    return 0;
}


运行效果如下:

C++中while循环结构


大家注意while循环里条件的写法,是一条cin语句,为什么可以这么写呢?与C语言写法while(scanf("%d%d",&a,&b)==2)道理如出一辙,都是判断返回值,即cin的返回值,前面给大家讲到过cin返回的是一个istream的流对象,如果遇到问题接收失败,则返回false,进而结束循环。


请大家务必亲自上机测试,并用C++完成训练场1085~1092题。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)