C++中的循環(huán),也沒有改變,依舊是while循環(huán)、do-while循環(huán)以及for循環(huán)三種,包括配合使用很多的break和continue使用方法上都沒有什么差別,我們依舊以題來(lái)學(xué)習(xí)鞏固本部分的語(yǔ)法。
來(lái)看訓(xùn)練場(chǎng)中1143題,判斷素?cái)?shù)的題,明白素?cái)?shù)的概念后,很明顯對(duì)于任何一個(gè)數(shù)N,都要從2開始到N-1之間依次嘗試,判斷是否能被N整除,來(lái)找出是否有能被N除盡的因數(shù),如果沒有則為素?cái)?shù)了,反之則不是,那么很明顯是一道循環(huá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è)試運(yùn)行結(jié)果如下:
老規(guī)矩,親自上機(jī)敲代碼本地測(cè)試沒問(wèn)題,提交通過(guò)之后再往后進(jìn)行。
下面,再看一道C++中循環(huán)相關(guān)的題,由于在ACM競(jìng)賽中較為常見,也給大家列出來(lái),題目為訓(xùn)練場(chǎng)1085題,求A+B的和的簡(jiǎn)單問(wèn)題,但為多組測(cè)試數(shù)據(jù),循環(huán)不停的接受,C++的寫法如下:
#include<iostream> using namespace std; int main() { int a,b; while(cin>>a>>b) { cout<<a+b<<endl; } return 0; }
運(yùn)行效果如下:
大家注意while循環(huán)里條件的寫法,是一條cin語(yǔ)句,為什么可以這么寫呢?與C語(yǔ)言寫法while(scanf("%d%d",&a,&b)==2)道理如出一轍,都是判斷返回值,即cin的返回值,前面給大家講到過(guò)cin返回的是一個(gè)istream的流對(duì)象,如果遇到問(wèn)題接收失敗,則返回false,進(jìn)而結(jié)束循環(huán)。
請(qǐng)大家務(wù)必親自上機(jī)測(cè)試,并用C++完成訓(xùn)練場(chǎng)1085~1092題。
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程