版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1第3章程序控制結(jié)構(gòu)2第3章程序控制結(jié)構(gòu)3.1語句3.2輸入與輸出3.3程序順序結(jié)構(gòu)3.4程序選擇結(jié)構(gòu)3.5程序循環(huán)結(jié)構(gòu)33.1語句語句(statement)是C++程序的最小單位程序由一條一條語句組成C++語言語句分為簡單語句、復(fù)合語句和控制語句43.1.1簡單語句1.表達(dá)式語句x=a+b;//賦值語句t=a,a=b,b=t;//a和b交換a+b+c;//運(yùn)算但無實(shí)際意義表達(dá)式;//用分號結(jié)束53.1.1簡單語句2.函數(shù)調(diào)用語句cout<<“a+b”<<a+b<<endl;//輸出流函數(shù)調(diào)用語句函數(shù)調(diào)用(實(shí)參);
//用分號結(jié)束63.1.1簡單語句3.空語句;
//單個分號73.1.2復(fù)合語句復(fù)合語句(compoundstatement),又稱語句塊,簡稱塊(block)
{//復(fù)合語句
doubles,a=5,b=10,h=8;//局部聲明
s=(a+b)*h/2.0;cout<<“area=”<<s<<endl;}//復(fù)合語句不需要分號結(jié)尾83.1.3注釋可以在程序中編寫注釋(comments),有兩種形式:①/*......*/塊注釋語法形式:②//行注釋語法形式:/*......注釋內(nèi)容*///......注釋內(nèi)容
93.1.4語句的寫法(1)多數(shù)情況下,在一個程序行里只寫一個語句,這樣的程序?qū)懛ㄇ逦?,便于閱讀、理解和調(diào)試。
(2)注意使用空格或TAB來作合理的間隔、縮進(jìn)、對齊,使程序形成邏輯相關(guān)的塊狀結(jié)構(gòu),養(yǎng)成優(yōu)美的程序編寫風(fēng)格。
(3)C++語言允許在一行里寫多個語句。103.2輸入與輸出所謂輸入是指從外部輸入設(shè)備(如鍵盤、鼠標(biāo)等)向計算機(jī)輸入數(shù)據(jù),輸出是指從計算機(jī)向外部輸出設(shè)備(如顯示器、打印機(jī)等)輸出數(shù)據(jù)。
113.2輸入與輸出C++語言輸入輸出操作是用流對象(stream)實(shí)現(xiàn)的。若在程序中使用流對象cin和cout,應(yīng)該用文件包含預(yù)處理命令將標(biāo)準(zhǔn)輸入輸出流庫的頭文件<iostream>包含到源文件中。#include<iostream>usingnamespacestd;123.2.1輸入流與輸出流cout和cin對象的使用cout<<表達(dá)式1<<表達(dá)式2<<……;cin>>變量1>>變量2>>……;intx,y;cin>>x>>y;//鍵盤輸入cout<<“x=”<<x<<“,y=”<<y<<endl;//輸出到顯示器上133.2.1輸入流與輸出流cin輸入時,為了分隔多項(xiàng)數(shù)據(jù),默認(rèn)要求在鍵盤輸入數(shù)據(jù)之間使用空格、Tab鍵、回車作為分隔符。#include<iostream>usingnamespacestd;intmain(){charc1,c2,c3;cin>>c1>>c2>>c3;cout<<"c1="<<c1<<",c2="<<c2<<",c3="<<c3<<endl;return0;}abcc1=a,c2=b,c3=c123c1=1,c2=2,c3=3143.2.1輸入流與輸出流2.格式控制
有時希望數(shù)據(jù)按指定的格式輸入輸出,如要求以十六進(jìn)制或八進(jìn)制形式輸入一個整數(shù),或希望輸出的實(shí)型數(shù)只保留兩位小數(shù)等。有兩種方法可以達(dá)到這樣的要求:(1)在輸入輸出流中使用控制符進(jìn)行格式控制。使用這種方法,要在程序中加入<iomanip>頭文件。
具體格式控制符參照教材P75表3-3153.2.1輸入流與輸出流例3.1使用cin和cout輸入輸出數(shù)據(jù)1#include<iostream>2#include<iomanip>3usingnamespacestd;4intmain()5{6boolv;inta,m,n;7doublex,y,z,p,f;floatf1;8cin>>boolalpha>>v;//輸入:true
9cin>>oct>>a>>hex>>m>>dec>>n;//輸入:14446-7710cin>>p>>f>>f1>>x>>y>>z;11cout<<v<<‘\t’<<boolalpha<<v<<‘\t’<<noboolalpha<<v<<endl;12cout<<a<<‘\t’<<p<<endl<<a*p<<endl;13cout<<hex<<m<<‘\t’<<oct<<m<<‘\t’<<dec<<m<<endl;14cout<<showbase<<hex<<m<<‘\t’<<oct<<m<<‘\t’<<dec<<m<<endl;15cout<<precision(5);cout<<x<<‘\t’<<y<<‘\t’<<z<<endl;16cout<<fixed<<x<<‘\t’<<y<<‘\t’<<z<<endl;1617cout<<scientific<<x<<‘\t’<<y<<‘\t’<<z<<endl;18cout<<left<<setw(6)<<n<<‘\t’<<internal<<setw(6)<<n<<‘\t’;19cout.width(6);cout<<right<<n<<setfill(‘0’)<<endl;20cout<<setw(10)<<77<<‘\t’<<setfill(‘x’)<<setw(10)<<77<<endl;21cout<<setprecision(5)<<f1<<‘\t’<<setprecision(9)<<f1<<endl;22cout<<fixed<<setprecision(5)<<f<<‘\t’<<setprecision(9)<<f<<endl;23cout<<scientific<<setprecision(5)<<f<<‘\t’<<setprecision(9)<<f<<endl;24cout<<setiosflags(ios_base::floatfield|ios_base::showpoint);
25cout<<setprecision(0)<<f<<‘\t’<<setprecision(9)<<f<<endl;26cout<<showpos<<1<<‘\t’<<0<<‘\t’<<-1<<endl;27cout<<noshowpos<<1<<‘\t’<<0<<‘\t’<<-1<<endl;28return0;29}3.2.1輸入流與輸出流171.字符輸出putchar函數(shù)putchar函數(shù)的作用是向顯示終端輸出一個字符,一般形式為:如:charc=‘a(chǎn)’;putchar(c);等價于cout<<c;
等價于putchar(97);putchar(c);3.2.2字符輸入與輸出183.2.2字符輸入與輸出2.字符輸入getchar函數(shù)getchar函數(shù)的作用是從鍵盤終端輸入一個字符,一般形式為:getchar()193.2.2字符輸入與輸出例:1#include<iostream>2usingnamespacestd;3intmain()4{charc1,c2,c3;5c1=getchar();c2=getchar();c3=getchar();6putchar(c1);putchar(c2);putchar(c3);
7return0;8}abcabcabcab20使用printf函數(shù)和scanf函數(shù)進(jìn)行輸入輸出,需要在程序中包含<stdio.h>頭文件。1.用printf函數(shù)來進(jìn)行輸出printf(格式控制,輸出項(xiàng)列表......);#include<stdio.h>intmain(){inti=10;doublef=10.0;charc='a';printf("i=%d,f=%lf,c=%c\n",i,f,c);return0;}3.2.3格式化輸出213.2.4格式化輸入scanf(格式控制,輸入項(xiàng)列表......);2.用scanf函數(shù)來進(jìn)行輸入#include<stdio.h>intmain(){inti;doublef;charc;scanf(“%i%lf%c”,&i,&f,&c)printf("i=%d,f=%f,c=%c\n",i,f,c);return0;}223.3程序順序結(jié)構(gòu)通常情況下,語句以其出現(xiàn)的順序執(zhí)行一個語句執(zhí)行完會自動轉(zhuǎn)到下一個語句開始執(zhí)行,這樣的執(zhí)行稱為順序執(zhí)行。順序執(zhí)行的次序是佷重要的
圖3.2求圓面積的執(zhí)行次序233.3.2跳轉(zhuǎn)執(zhí)行從問題求解的一般過程來看,還需要跳轉(zhuǎn)執(zhí)行。
①選擇語句:if語句、switch語句;②循環(huán)語句:while語句、do語句、for語句;③跳轉(zhuǎn)語句:goto語句(不建議使用)、break語句、continue語句、return語句。
243.4程序選擇結(jié)構(gòu)1.if語句2.switch語句253.4.1if語句if語句的作用是計算給定的表達(dá)式,根據(jù)結(jié)果選擇執(zhí)行相應(yīng)的語句。語句形式有兩種:①if形式:②if-else形式:if(表達(dá)式)語句1;else
語句2;if(表達(dá)式)語句1;如:if(a>b)t=a,a=b,b=t;如:if(x>=y)cout<<x<<endl;elsecout<<y<<endl;263.4.1if語句(1)if語句中的子語句既可以是簡單語句,又可以是復(fù)合語句或控制語句,但必須是“一個語句”的語法形式
1if(a>b)//此段程序代碼編譯有錯誤2x=a+b;y=a-b;3else4x=a-b;y=a+b;1if(a>b){//此段程序代碼正確2x=a+b;y=a-b;3}4else{5x=a-b;y=a+b;6}273.4.1if語句總是交換的代碼(不好的code風(fēng)格):
1if(a>b)2{3t=a;4a=b;5b=t;6};1if(a>b){2t=a;3a=b;4b=t;5};283.4.1if語句(2)if語句的表達(dá)式一般為關(guān)系、邏輯運(yùn)算表達(dá)式,但也可以為其他表達(dá)式,但按邏輯值來理解:a=5,b=2;if(a)x=a*10;//等價于a!=0293.4.1if語句例3.2計算三角形的面積1#include<iostream>2#include<cmath>3usingnamespacestd;4intmain()5{6doublea,b,c;7cin>>a>>b>>c;8
//判斷三邊長是否構(gòu)成三角形
9if(a+b>c&&a+c>b&&b+c>a){
10 doubles,t;11t=(a+b+c)/2.0;12 s=sqrt(t*(t-a)*(t-b)*(t-c));13cout<<“area=”<<s<<endl;14}15elsecout<<“error”<<endl;16 return0;17}
345area=6303.4.2switch語句switch語句switch語句的作用是計算給定的表達(dá)式,根據(jù)結(jié)果選擇從哪個分支入口執(zhí)行,語句形式為:switch(表達(dá)式){
case
常量表達(dá)式1:…語句序列1
case
常量表達(dá)式2:…語句序列2 ┇
case
常量表達(dá)式n:…語句序列n
default:…默認(rèn)語句序列}313.4.2switch語句圖3.4switch語句執(zhí)行流程switch(表達(dá)式){
case
常量表達(dá)式1:語句序列1
case
常量表達(dá)式2:語句序列2 ┇
case
常量表達(dá)式n:語句序列n
default:默認(rèn)語句序列}323.4.2switch語句switch語句的使用說明:(1)switch語句中case分支的語句序列可以是一個語句,也可以是任意多的語句序列,也可以沒有語句;(2)如果case后沒有語句,則一旦執(zhí)行到這個case分支,什么也不做,繼續(xù)往下執(zhí)行。
333.4.2switch語句1switch(n){2case7:cout<<“step5”<<endl;3case6:4case5:cout<<“step4”<<endl;5case4:6{7 cout<<“step3”<<“step2”<<endl;8}9case2:cout<<“step1”<<endl;10default:cout<<“step0”<<endl;11}3.4.2switch語句(3)switch語法中各個case分支和default分支的出現(xiàn)次序在語法上沒有規(guī)定,但次序的不同安排會影響執(zhí)行結(jié)果。341//①程序A2switch(n){3
case1:cout<<"1";4
case2:cout<<"2";5
default:cout<<"0";6}1//②程序B2switch(n){3
default:cout<<"0";4
case1:cout<<"1";5
case2:cout<<"2";6}353.4.2switch語句(4)switch語法中default分支是可選的,若沒有default分支且沒有任何case標(biāo)號的值相等時,switch語句將什么也不做,直接執(zhí)行后續(xù)語句。(5)switch語句的分支表達(dá)式可以是C++語言的任意表達(dá)式,但其值必須是整數(shù)(含字符類型)、枚舉類型。
363.4.2switch語句(6)switch語法中的case后的表達(dá)式必須是常量表達(dá)式且互不相同,即為整型、字符型、枚舉類型的常量值,但不能包含變量。例如:若c是變量,如
:“casec>=‘a(chǎn)’&&c<=‘z’:”的寫法是錯的。(7)case分支后面的冒號是必須的,即使沒有后面的語句序列。
373.4.2switch語句(8)在switch語句中任意位置上,只要執(zhí)行到break語句,就結(jié)束switch語句的執(zhí)行,轉(zhuǎn)到后續(xù)語句。break;383.4.2switch語句更常見的switch結(jié)構(gòu)應(yīng)該如下,它提供了程序多分支選擇執(zhí)行流程。switch(表達(dá)式){
case
常量表達(dá)式1:…語句序列1;break;
case
常量表達(dá)式2:…語句序列2;break; ┇
case
常量表達(dá)式n:…語句序列n;break;
default:…默認(rèn)語句序列}393.4.2switch語句圖3.5結(jié)構(gòu)化的switch流程3.4.2switch語句40例:按照考試成績的等級輸出百分制分?jǐn)?shù)段intmain(){intg;cin>>g;switch(g){case’A’:cout<<“85~100\n”;break;case’B’:cout<<“70~84\n”;break;case’C’:cout<<“60~69\n”;break;case’D’:cout<<“<60\n”;break;default:cout<<“error\n”;}return0;}413.4.3選擇結(jié)構(gòu)的嵌套1.if語句的嵌套(1)第一種形式,在else分支上嵌套if語句,語法形式為:if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3......elseif(表達(dá)式n)語句nelse語句m423.4.3選擇結(jié)構(gòu)的嵌套圖3.6嵌套if語句第一種形式的執(zhí)行流程433.4.3選擇結(jié)構(gòu)的嵌套例3.3編程輸出成績分類1#include<iostream>2usingnamespacestd;3intmain()4{5intscore;6cin>>score;7if(score>=90)cout<<“A”<<endl;8elseif(score>=80)cout<<“B”<<endl;9elseif(score>=70)cout<<“C”<<endl;10elseif(score>=60)cout<<“D”<<endl;11elsecout<<“E”<<endl;12return0;13}443.4.3選擇結(jié)構(gòu)的嵌套(2)第二種形式,在if和else分支上嵌套if語句,語法形式為:
if(表達(dá)式1)
if(表達(dá)式2)語句1else語句2else
if(表達(dá)式3)語句3else語句4453.4.3選擇結(jié)構(gòu)的嵌套圖3.7嵌套if語句第二種形式的執(zhí)行流程46比較:if(x)if(y)cout<<“1”;elsecout<<“2”;與if(x){if(y)cout<<“1”;}elsecout<<“2”;注意:嵌套的if語句可以實(shí)現(xiàn)多路分支。在結(jié)構(gòu)上else語句總和距離自己最近的if相匹配。我們可以通過加“{}”來改變else的層位,從而改變程序的執(zhí)行流程。intx=10,y=0,輸出:2沒有輸出3.4.3選擇結(jié)構(gòu)的嵌套473.4.3選擇結(jié)構(gòu)的嵌套x-1(x<-3)y=9-x2(-3≤x≤3)x+1(x>3)例:計算函數(shù)#include<cmath>intmain(){doublex,y;cin>>x;if(x<-3.0)y=x-1.0;elseif(x>=-3.0&&x<=3.0)y=sqrt(9.0-x*x);elsey=x+1;cout<<“x=”<<x<<“,y=”<<y<<endl;return0;}483.4.3選擇結(jié)構(gòu)的嵌套2.switch語句的嵌套switch語句是可以嵌套的:1inta=15,b=21,m=0;2switch(a%3){3
case0:m++;4
switch(b%2){5
default:m++;6
case0:m++;break;7}8
case1:m++;9}493.4.4選擇結(jié)構(gòu)程序舉例例3.5輸入某天的日期,輸出第二天的日期1#include<iostream>2usingnamespacestd;3intmain()4{5
inty,m,d,Days;
6cin>>y>>m>>d;//輸入日期
7
switch(m){//計算每月的天數(shù)
8
case2:9Days=28;10
if((y%4==0&&y%100!=0)||(y%400==0))Days++;11
break;12
case4:case6:13
case9:case11:Days=30;break;
503.4.4選擇結(jié)構(gòu)程序舉例例3.514
default:Days=31;//其余月份為31天
15}16d++;17
if(d>Days)d=1,m++;//判斷月末
18
if(m>12)m=1,y++;//判斷年末
19cout<<y<<“-”<<m<<“-”<<d<<endl;20
return0;21}51比較一下三種多路分支結(jié)構(gòu):3.4.4選擇結(jié)構(gòu)程序舉例if(表達(dá)式1)
if(表達(dá)式2)語句1else語句2else
if(表達(dá)式3)語句3else語句4if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3......elseif(表達(dá)式n)語句nelse語句mswitch(表達(dá)式){
case
常量表達(dá)式1:…語句序列1;break;
case
常量表達(dá)式2:…語句序列2;break; ┇
case
常量表達(dá)式n:…語句序列n;break;
default:…默認(rèn)語句序列}523.5程序循環(huán)結(jié)構(gòu)循環(huán):就是在滿足一定條件時,重復(fù)執(zhí)行一段程序。1.while語句2.dowhile語句3.for語句533.5.1while語句while語句其中的語句稱為子語句,又稱循環(huán)體,圓括號內(nèi)的表達(dá)式稱為循環(huán)條件。
while(表達(dá)式
)語句;543.5.1while語句圖3.9while語句執(zhí)行流程553.5.1while語句【例3.7】求即
圖3.9while語句執(zhí)行流程563.5.1while語句例3.71#include<iostream>2usingnamespacestd;3intmain()4{5intn=1,sum=0;6while(n<=100){
7sum=sum+n;8n=n+1;9}10cout<<“sum=”<<sum<<endl;11 return0;
12}循環(huán)控制表達(dá)式循環(huán)體注意:①若循環(huán)體包含一條以上的語句,應(yīng)以復(fù)合語句形式出現(xiàn)。②循環(huán)前,必須給循環(huán)控制變量賦初值。③在循環(huán)體里面,必須有改變循環(huán)控制變量值的語句。573.5.1while語句while語句的說明。(1)由于while語句先計算表達(dá)式的值,再判斷是否循環(huán),所以如果表達(dá)式的值一開始就為假,則循環(huán)一次也不執(zhí)行,失去了循環(huán)的意義。(2)while語句循環(huán)條件可以是C++語言的任意表達(dá)式。通常情況下,循環(huán)條件是關(guān)系表達(dá)式或邏輯表達(dá)式,應(yīng)該謹(jǐn)慎出現(xiàn)別的表達(dá)式。583.5.2do語句dowhile語句其中的語句稱為子語句,又稱循環(huán)體,圓括號內(nèi)的表達(dá)式稱為循環(huán)條件。
do
語句while(表達(dá)式
);593.5.2do語句圖3.10do-while語句執(zhí)行流程603.5.2do語句do語句的說明。(1)do語句的最后必須用分號(;)作為語句結(jié)束,循環(huán)體的復(fù)合語句形式為:do{…//復(fù)合語句}while(表達(dá)式
);613.5.2do語句(2)do語句先執(zhí)行后判定,while語句則是先判定后執(zhí)行;do語句至少要執(zhí)行循環(huán)體一次,而while語句可能一次也不執(zhí)行。(3)do語句結(jié)構(gòu)和while語句結(jié)構(gòu)是可以相互替換的。623.5.2do語句例3.8連續(xù)輸入多個數(shù)據(jù),計算它們的乘積,當(dāng)輸入0時結(jié)束1#include<iostream>2usingnamespacestd;3intmain()4{5intn=1,k=1;6do{7k=k*n;8cin>>n;
9}while(n!=0);//輸入0時結(jié)束循環(huán)
10cout<<k<<endl;11return0;12}633.5.3for語句for語句for語句有循環(huán)初始和循環(huán)控制功能,語句形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句;643.5.3for語句圖3.11for語句執(zhí)行流程整個循環(huán)過程中表達(dá)式1只求解一次;作用是給循環(huán)控制變量賦初值。表達(dá)式3是重復(fù)執(zhí)行的內(nèi)容;通常是改變循環(huán)控制變量值的語句。表達(dá)式2相當(dāng)于是for的循環(huán)條件。for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句;653.5.3for語句for語句的應(yīng)用格式如:求1+2+3+……+100
for(循環(huán)初始;循環(huán)條件;循環(huán)控制)循環(huán)體;for(n=1,sum=0;n<=100;n++)sum=sum+n;intn=1,sum=0;while(n<=100){sum=sum+n;n=n+1;}663.5.3for語句for循環(huán)的其他形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句可以移到for語句的前面可以移到內(nèi)嵌語句的后面表達(dá)式1;for(;表達(dá)式2;表達(dá)式3)語句for(表達(dá)式1;表達(dá)式2;){語句表達(dá)式3;
}不能為空值673.5.3for語句省略表達(dá)式1。省略表達(dá)式3。表達(dá)式1和表達(dá)式3都省略n=1,sum=0;for(;n<=100;n++)sum=sum+n;for(n=1,sum=0;n<=100;)sum=sum+n,n++;n=1,sum=0for(;n<=100;)sum=sum+n,n++;683.5.4break語句break語句break語句的作用是結(jié)束switch語句和循環(huán)語句的運(yùn)行,轉(zhuǎn)到后續(xù)語句,語法形式為:break;693.5.4break語句break語句只能用在switch語句和循環(huán)語句(while、do、for)中,不得單獨(dú)使用。顯然,在循環(huán)結(jié)構(gòu)中使用break語句的目的就是提前結(jié)束循環(huán)。703.5.4break語句例3.9判斷一個數(shù)m是否是素數(shù)1#include<iostream>2usingnamespacestd;3intmain()4{5inti,m;6cin>>m;
7//從2到m-1之間逐一檢查是否被m整除8for(i=2;i<=m-1;i++)9if(m%i==0)break;10if(i==m)cout<<“Yes”<<endl;11elsecout<<“No”<<endl;12return0;13}713.5.4break語句如此,循環(huán)語句的結(jié)束就有兩個手段了:一是循環(huán)條件二是應(yīng)用break語句。723.5.5continue語句continue語句continue語句的作用是在循環(huán)體中結(jié)束本次循環(huán),直接進(jìn)入下一次循環(huán),語句形式為:continue;733.5.5continue語句continue語句只能用在循環(huán)語句(while、do、for)中,不能單獨(dú)使用。在while語句和do語句循環(huán)體中執(zhí)行continue語句,程序會轉(zhuǎn)到“表達(dá)式”繼續(xù)運(yùn)行,在for語句循環(huán)體中執(zhí)行continue語句,程序會轉(zhuǎn)到“表達(dá)式3”繼續(xù)運(yùn)行,循環(huán)體中余下的語句被跳過了。743.5.5continue語句1for(n=1,sum=0;n<=100;n++){2if(n%2==0)break;3sum=sum+n;4}比較下面兩段程序:1for(n=1,sum=0;n<=100;n++){2if(n%2==0)continue;3sum=sum+n;4}753.5.6循環(huán)結(jié)構(gòu)的嵌套如果一個循環(huán)體內(nèi)包含又一個循環(huán)語句時,就構(gòu)成了循環(huán)的嵌套。C++語言的循環(huán)語句(while、do、for)可以互相嵌套,循環(huán)嵌套的層數(shù)沒有限制,可以形成多重循環(huán)。使用多重循環(huán)的時候,嵌套的循環(huán)控制變量不能相同。
763.5.6循環(huán)結(jié)構(gòu)的嵌套例:for循環(huán)嵌套
for(e1;e2;e3){┇for(b1;b2;b3){┇}┇}
求解e1部分語句1部分語句2e2?b2?
求解b1內(nèi)循環(huán)體求解b3求解e3FTFT773.5.7循環(huán)結(jié)構(gòu)程序舉例循環(huán)語句的選用1)循環(huán)次數(shù)已知且循環(huán)操作規(guī)律,選用for方便;2)循環(huán)次數(shù)未知且循環(huán)操作里沒有按一定規(guī)律變化的量,可采用while或do-while語句。例:鍵盤輸入一個偶數(shù),非偶數(shù)則要求重輸。
intmain(){intn;┇do{cout<<“Entern:”<<endl;//循環(huán)次數(shù)不定cin>>n;}while(n%2!=0);┇}783.5.7循環(huán)結(jié)構(gòu)程序舉例例:輸入5個最多8位的正整數(shù),將各數(shù)按位顛倒輸出。intmain(){inti,n,d;
for(i=1;i<=5;i++)
{//循環(huán)次數(shù)確定cout<<“Enteradata(1~99999999):”;cin>>n;
while(n!=0)
{//循環(huán)次數(shù)不定d=n%10;cout<<d;n=n/10;}}return0;}793.5.7循環(huán)結(jié)構(gòu)程序舉例循環(huán)的分類(循環(huán)語句的選用)1.計數(shù)型循環(huán)計數(shù)型循環(huán)用于處理已知循環(huán)次數(shù)的循環(huán)過程??刂谱兞吭诿看窝h(huán)時都要發(fā)生規(guī)律性變化(遞增或遞減),當(dāng)控制變量達(dá)到預(yù)定的循環(huán)次數(shù)時,循環(huán)就結(jié)束。計數(shù)型循環(huán)常使用for語句。803.5.7循環(huán)結(jié)構(gòu)程序舉例【例3.10】求
相當(dāng)于:求S=1!+2!+3!+……+10!813.5.7循環(huán)結(jié)構(gòu)程序舉例例3.10求S=1!+2!+3!+……+10!
1#include<iostream>2usingnamespacestd;3intmain()4{5ints,n,t;6
for(s=0,t=1,n=1;n<=10;n++)
7
t=t*n,s=s+t;//t為n!8cout<<s<<endl;9return0;10}823.5.7循環(huán)結(jié)構(gòu)程序舉例2.條件型循環(huán)條件型循環(huán)用于處理循環(huán)次數(shù)未知的循環(huán)過程,稱為“不定次數(shù)循環(huán)”。在條件型循環(huán)中,由于事先不能準(zhǔn)確知道循環(huán)的次數(shù),因此循環(huán)控制是由條件來判定的。在每次循環(huán)時檢測這個條件,當(dāng)條件一旦滿足,循環(huán)就結(jié)束。條件型循環(huán)常使用while語句和dowhile語句。833.5.7循環(huán)結(jié)構(gòu)程序舉例例3.11求π的近似值π/4≈1-1/3+1/5-1/7+1/9-…,直到最后一項(xiàng)的絕對值小于10-7為止。1#include<iostream>2#include<cmath>3usingnamespacestd;4intmain()5{6doubles=1,pi=0,n=1,t=1;7
while(fabs(t)>1e-7)8pi=pi+t,n=n+2,s=-s,t=s/n;9cout<<pi*4<<endl;10return0;11}843.5.7循環(huán)結(jié)構(gòu)程序舉例例3.12從鍵盤輸入一行字符,直到輸入回車時結(jié)束輸入。統(tǒng)計其中的字母、數(shù)字和空格個數(shù)。1#include<iostream>2usingnamespacestd;3intmain()4{5intc,a=0,n=0,s=0;6while((c=cin.get())!='\n')7
if((c>='A'&&c<='Z')||8(c>='a'&&c<='z'))a++;9elseif(c>='0'&&c<='9')n++;10elseif(c=='')s++;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版外賣配送員服務(wù)合同3篇
- 2025年旋挖鉆機(jī)操作人員職業(yè)健康安全管理勞務(wù)合同2篇
- 二零二五年智能家居系統(tǒng)集成項(xiàng)目分包合同3篇
- 2025年度智能家居系統(tǒng)軟件開發(fā)類框架合同3篇
- 2025年度新能源儲能系統(tǒng)現(xiàn)場安裝與調(diào)試委托合同3篇
- 二零二五年度可再生能源電站建設(shè)勞務(wù)承包協(xié)議2篇
- 2025年度新能源動力電池組裝委托加工合同3篇
- 二零二五版寵物狗主題公園建設(shè)合作協(xié)議3篇
- 2025年度350兆數(shù)字集群對講機(jī)批量采購及服務(wù)保障合同2篇
- 個性化簡易離婚合同范本2024版版B版
- TD/T 1060-2021 自然資源分等定級通則(正式版)
- 人教版二年級下冊口算題大全1000道可打印帶答案
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀
- 倉庫智能化建設(shè)方案
- 海外市場開拓計劃
- 2024年度國家社會科學(xué)基金項(xiàng)目課題指南
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
- 幼兒數(shù)學(xué)益智圖形連線題100題(含完整答案)
- 七上-動點(diǎn)、動角問題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 紅色歷史研學(xué)旅行課程設(shè)計
評論
0/150
提交評論