循環(huán)結(jié)構(gòu)設(shè)計(jì)-C語(yǔ)言程序設(shè)計(jì)(譚浩強(qiáng)第三版)講解_第1頁(yè)
循環(huán)結(jié)構(gòu)設(shè)計(jì)-C語(yǔ)言程序設(shè)計(jì)(譚浩強(qiáng)第三版)講解_第2頁(yè)
循環(huán)結(jié)構(gòu)設(shè)計(jì)-C語(yǔ)言程序設(shè)計(jì)(譚浩強(qiáng)第三版)講解_第3頁(yè)
循環(huán)結(jié)構(gòu)設(shè)計(jì)-C語(yǔ)言程序設(shè)計(jì)(譚浩強(qiáng)第三版)講解_第4頁(yè)
循環(huán)結(jié)構(gòu)設(shè)計(jì)-C語(yǔ)言程序設(shè)計(jì)(譚浩強(qiáng)第三版)講解_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)概述goto語(yǔ)句及用goto語(yǔ)句構(gòu)成循環(huán)三種循環(huán)while、do-while、for循環(huán)的嵌套幾種循環(huán)的比較Break語(yǔ)句和continue語(yǔ)句程序舉例6.0

循環(huán)結(jié)構(gòu)導(dǎo)入

在程序設(shè)計(jì)中含有循環(huán)結(jié)構(gòu)的問(wèn)題是大量存在的

對(duì)輸入的10個(gè)整數(shù)求和,怎么編程?

對(duì)輸入的100個(gè)整數(shù)求和,怎么編程?以上問(wèn)題可以引出一個(gè)概念“循環(huán)〞,簡(jiǎn)單而言:循環(huán)就是不斷反復(fù)地執(zhí)行同一段程序。

6.1

概述C語(yǔ)言可實(shí)現(xiàn)的循環(huán):用goto

和if構(gòu)成循環(huán)

while語(yǔ)句

do~while語(yǔ)句

for語(yǔ)句不提倡當(dāng)型循環(huán)——先判斷后執(zhí)行直到型循環(huán)——先執(zhí)行后判斷多功能6.2

goto語(yǔ)句及用goto語(yǔ)句構(gòu)成循環(huán)一般形式:語(yǔ)句標(biāo)號(hào):語(yǔ)句….…..goto語(yǔ)句標(biāo)號(hào);1.功能是無(wú)條件轉(zhuǎn)到語(yǔ)句標(biāo)號(hào)處。2.用途:與if語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu);從循環(huán)體中跳到循環(huán)體外。3.因?yàn)闉E用goto語(yǔ)句會(huì)破壞結(jié)構(gòu)化,使流程無(wú)規(guī)律,所以應(yīng)限制使用。除非不得已時(shí)(例如能大大提高效率)才使用。說(shuō)明:語(yǔ)句標(biāo)號(hào):1.用于定義程序中的某個(gè)位置。2.用標(biāo)識(shí)符表示,開頭不能是數(shù)字。如:goto3t;錯(cuò)誤gotot3;正確3.只能加在可執(zhí)行語(yǔ)句前面。用if語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán)例1計(jì)算#include<stdio.h>main(){inti,sum=0;i=1;loop:if(i<=100){sum+=i; i++;

gotoloop;}printf("%d",sum);}sum=sum+1=1sum=sum+2=3sum=sum+3=6sum=sum+4=10……sum=sum+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體分析:這是一個(gè)累加求和的問(wèn)題sum=1+2+3+…+100

僅作示范,不提倡使用6.2

goto語(yǔ)句及用goto語(yǔ)句構(gòu)成循環(huán)循環(huán)結(jié)構(gòu)應(yīng)注意的三方面問(wèn)題:控制變量的初始化,循環(huán)的條件控制變量的更新。用while語(yǔ)句實(shí)現(xiàn)當(dāng)型循環(huán)表達(dá)式循環(huán)體當(dāng)表達(dá)式的值為真〔非0〕時(shí),執(zhí)行其中的內(nèi)嵌語(yǔ)句〔循環(huán)體〕,然后回過(guò)頭來(lái)再判斷表達(dá)式的值,如此重復(fù);當(dāng)表達(dá)式為假〔0〕時(shí)結(jié)束循環(huán)。6.3用while語(yǔ)句實(shí)現(xiàn)循環(huán)一般形式:while(表達(dá)式)

循環(huán)體語(yǔ)句表達(dá)式循環(huán)體假(0)真(非0)執(zhí)行過(guò)程:特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體。注意:循環(huán)體有可能一次也不執(zhí)行。循環(huán)前,須給循環(huán)控制變量賦初值。假設(shè)循環(huán)體包含一條以上的語(yǔ)句,應(yīng)以復(fù)合語(yǔ)句形式出現(xiàn){}。循環(huán)體中,必須有改變循環(huán)控制變量值的語(yǔ)句〔使循環(huán)趨向結(jié)束的語(yǔ)句,否那么就成為死循環(huán)〕。無(wú)限循環(huán):while(1)循環(huán)體;循環(huán)控制條件可多樣while(i<=100)while(getchar()!=‘\n’)n++;循環(huán)體可為空如:while((c=getchar())!=‘A’);從鍵盤輸入字符直到輸入A為止等價(jià)于:c=getchar();while(c!=‘A’)c=getchar();一般形式:while(表達(dá)式)

循環(huán)體語(yǔ)句循環(huán)控制表達(dá)式循環(huán)體循環(huán)控制變量例如:k=1;while(k<=100){s=s+k;k++;}分析:累加求和的問(wèn)題s=1+2+3+…+100s=0s=s+1s=s+2s=s+3……和的新值s=s+k和的當(dāng)前值求和項(xiàng)當(dāng)前值例2用while語(yǔ)句計(jì)算#include<stdio.h>main(){intk,s;s=0;k=1;while(k<=100){s=s+k;k++;}printf(“s=%d",s);}注意:s、k的初值及位置s=0,k=1當(dāng)k≤100

s=s+kk=k+1用do-while語(yǔ)句實(shí)現(xiàn)直到型循環(huán)執(zhí)行循環(huán)體,當(dāng)表達(dá)式的值為真〔非0〕時(shí),再次執(zhí)行循環(huán)體,如此重復(fù);當(dāng)表達(dá)式為假〔0〕時(shí)結(jié)束循環(huán)。6.4do-while語(yǔ)句一般形式:do

循環(huán)體語(yǔ)句while(表達(dá)式);表達(dá)式循環(huán)體假(0)真(非0)執(zhí)行過(guò)程:先執(zhí)行循環(huán)體,后判斷表達(dá)式。循環(huán)體至少執(zhí)行一次。do-while語(yǔ)句可轉(zhuǎn)化成while語(yǔ)句。表達(dá)式循環(huán)體;不可省略!切記!!例3用do-while語(yǔ)句計(jì)算#include<stdio.h>main(){intk,s;s=0;k=1;

while(k<=100){s=s+k;k++;}printf(“s=%d",s);}#include<stdio.h>main(){intk,s;s=0;k=1;

do{s=s+k;k++;}while(k<=100);printf(“s=%d",s);}s=0,k=1s=s+kk=k+1

當(dāng)i<=100先判后做先做后判運(yùn)行結(jié)果:1↙sum=55再運(yùn)行一次:11↙sum=0運(yùn)行結(jié)果:1↙sum=55再運(yùn)行一次:11↙sum=11while語(yǔ)句和用do-while語(yǔ)句的比較:一般情況下,用while語(yǔ)句和用do-while語(yǔ)句處理同一問(wèn)題,假設(shè)二者的循環(huán)體一樣,結(jié)果也一樣。但如果while后面的表達(dá)式一開始就為假(0值)時(shí),兩種循環(huán)的結(jié)果是不同的。教材117例6.46.5for語(yǔ)句最簡(jiǎn)單的應(yīng)用形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值;)循環(huán)體語(yǔ)句例如:for(i=1;i<=100;i++)sum+=i;一般形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3;)

循環(huán)體語(yǔ)句(1)先求解表達(dá)式1。(2)求解表達(dá)式2,若其值為真(值為非0),則執(zhí)行for語(yǔ)句中指定的循環(huán)體語(yǔ)句,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步。(3)求解表達(dá)式3。(4)轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。(5)循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句

執(zhí)行過(guò)程:例如:for(i=1;i<=100;i++)sum+=i;for(表達(dá)式1;表達(dá)式2;表達(dá)式3;)

循環(huán)體語(yǔ)句1.表達(dá)式1省略時(shí),應(yīng)在for前給循環(huán)變量賦初值。如:i=1;for(;i<=100;i++)sum=sum+i;執(zhí)行時(shí),跳過(guò)“求解表達(dá)式1〞這一步,其他不變。2.表達(dá)式2省略時(shí),不判斷循環(huán)條件,將成為“死循環(huán)〞,需要在循環(huán)體中引入break語(yǔ)句以退出循環(huán)。如:for(i=1;;i++)sum=sum+i;它相當(dāng)于:i=1;while(1){sum=sum+1;i++;}死循環(huán)3.表達(dá)式3省略時(shí),在循環(huán)體內(nèi)必須有使循環(huán)條件改變的語(yǔ)句,以保證循環(huán)能正常結(jié)束。如:for〔k=1;k<=3;〕{s=s+k;k++;}for循環(huán)的說(shuō)明:4.同時(shí)省略表達(dá)式1和表達(dá)式3,只有表達(dá)式2,相當(dāng)于while語(yǔ)句。如

k=1;for(;k<=100;){s=s+k;k++;}k=1;while(k<=100){s=s+k;k++;}for循環(huán)的說(shuō)明:5.3個(gè)表達(dá)式都可省略,如:for(;;)語(yǔ)句無(wú)限循環(huán)不設(shè)初值,不判斷條件,循環(huán)變量不增值。無(wú)終止地執(zhí)行循環(huán)體。6.表達(dá)式2一般是關(guān)系表達(dá)式或邏輯表達(dá)式,但也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值不等于0就執(zhí)行循環(huán)體。如:for〔k=1;k-4;k++〕s=s+k;僅當(dāng)k的值等于4時(shí)終止循環(huán)。k-4是數(shù)值表達(dá)式。例:#include<stdio.h>main(){charc;for(;(c=getchar())!='\n';)printf("%c",c);}for語(yǔ)句中只有表達(dá)式2,而無(wú)表達(dá)式1和表達(dá)式3。其作用是每讀入一個(gè)字符后立即輸出該字符,直到輸入一個(gè)“換行〞為止。運(yùn)行情況:Computer↙(輸入)Computer(輸出)例:#include<stdio.h>main(){inti,c;for(i=0;(c=getchar())!='\n';i+=c) ;}此for語(yǔ)句的循環(huán)體為空語(yǔ)句,把本來(lái)要在循環(huán)體內(nèi)處理的內(nèi)容放在表達(dá)式3中。表達(dá)式2中先從終端接收一個(gè)字符賦給c,然后判斷c的值是否不等于換行符‘\n’,如果不等于‘\n’,執(zhí)行循環(huán)體。例用for語(yǔ)句計(jì)算#include<stdio.h>main(){intk,s;s=0;k=1;

while(k<=100){s=s+k;k++;}printf(“s=%d",s);}#include<stdio.h>main(){intk,s;s=0;k=1;

do{s=s+k;k++;}while(k<=100);printf(“s=%d",s);}先判后做先做后判#include<stdio.h>main(){intk,s;s=0;for(k=1;k<=100;k++)s=s+k;printf(“s=%d",s);}6.6幾種循環(huán)的比較1.不提倡用goto構(gòu)成循環(huán)。2.關(guān)于循環(huán)的控制:當(dāng)循環(huán)控制條件非零時(shí),執(zhí)行循環(huán)體語(yǔ)句,否那么終止循環(huán)。while(表達(dá)式)

循環(huán)體語(yǔ)句do

循環(huán)體語(yǔ)句while(表達(dá)式);for(表達(dá)式1;表達(dá)式2;表達(dá)式3;)

循環(huán)體語(yǔ)句循環(huán)條件初始化也可在for前循環(huán)控制條件也可在循環(huán)體內(nèi)修改循環(huán)條件(改變循環(huán)控制變量值)3.一種循環(huán)可以解決的問(wèn)題,使用另外兩種同樣可行,只是方便程度不同。4.while循環(huán)一般用于循環(huán)次數(shù)不定的情況,for循環(huán)一般用于循環(huán)次數(shù)確定的情況(也可以用于循環(huán)次數(shù)不定的情況),do-while循環(huán)一般用于至少需要執(zhí)行一次的情況。5.for循環(huán)和while循環(huán)是先判斷條件是否為真,再執(zhí)行循環(huán)體,因此,可出現(xiàn)循環(huán)一次也不執(zhí)行的情況;do-while循環(huán)是先執(zhí)行循環(huán)體,再判斷條件是否為真,因此,循環(huán)體至少執(zhí)行一次。6.while循環(huán)、do-while循環(huán)、for循環(huán),可以用break語(yǔ)句跳出循環(huán),用continue語(yǔ)句結(jié)束本次循環(huán)。2.循環(huán)體語(yǔ)句可以是任何語(yǔ)句,簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句均可以。6.7循環(huán)的嵌套

什么叫循環(huán)嵌套?

一個(gè)循環(huán)的循環(huán)體中套有另一個(gè)循環(huán)叫循環(huán)嵌套。這種嵌套過(guò)程可以一直重復(fù)下去。

一個(gè)循環(huán)外面包圍一層循環(huán)稱為二重循環(huán)。一個(gè)循環(huán)外面包圍二層循環(huán)稱為三重循環(huán)。一個(gè)循環(huán)外面包圍多層循環(huán)稱為多重循環(huán)。

while、do-while、for可以互相嵌套自由組合。

1.一個(gè)循環(huán)體內(nèi)包含著另一個(gè)完整的循環(huán)結(jié)構(gòu),就稱為嵌套循環(huán)。2.內(nèi)嵌的循環(huán)中又可以嵌套循環(huán),從而構(gòu)成多重循環(huán)。3.三種循環(huán)可以相互嵌套。下面幾種都是合法的嵌套形式:(1)while(){……

while(){……}…...}(4)while(){……

do{……}while();…….}(5)for(;;){……

while(){……}…...}(3)for(){……

for(;;){……}…….}(6)do{……

for(;;){……}…...}while();(2)do{……

do{……}while();…...}while();例:在屏幕上打印一個(gè)8行7列的星號(hào)矩陣。

#include<stdio.h>main(){inti;for(i=0;i<7;i++)printf("*");/*打印第1行星號(hào)*/printf("\n");for(i=0;i<7;i++)printf("*");/*打印第2行星號(hào)*/printf("\n");……for(i=0;i<7;i++)printf(“*〞);/*打印第8行星號(hào)*/}例:將上例〔打印8行7列的星號(hào)矩形〕用二重循環(huán)實(shí)現(xiàn)。#include<stdio.h>main(){inti,k;for(i=0;i<8;i++){for(k=0;k<7;k++)printf("*");printf("\n");}}6.8break語(yǔ)句和continue語(yǔ)句break語(yǔ)句:break;功能:跳出switch結(jié)構(gòu);在循環(huán)語(yǔ)句中,終止并跳出本層循環(huán)。例

計(jì)算r=1到r=10的圓面積,直到面積大于100時(shí)停止。#definePI3.1415main(){intr;floatarea;for(r=1;r<=10;r++){area=PI*r*r;if(area>100)

break;printf("r=%d,area=%.2f\n",r,area);}}運(yùn)行結(jié)果:r=1,area=3.14r=2,area=12.57r=3,area=28.27r=4,area=50.26r=5,area=78.54說(shuō)明:〔1〕break只能用于循環(huán)語(yǔ)句和switch語(yǔ)句語(yǔ)句中。〔2〕break語(yǔ)句在循環(huán)中使用時(shí),總是與if一起使用,當(dāng)條件滿足時(shí),負(fù)責(zé)退出循環(huán)?!?〕如果循環(huán)體中使用switch語(yǔ)句,而break出現(xiàn)在switch語(yǔ)句中,那么它只用于結(jié)束switch,而不影響循環(huán)。〔4〕break只能終止并跳出包含它的本層結(jié)構(gòu),不能跳多重循環(huán)。例:圖break語(yǔ)句的執(zhí)行只能從while循環(huán)中退出

for()

{

:

:

while()

{

:

:

if()break;

:

:

}

b=a;

:

}例:設(shè)計(jì)一個(gè)程序完成以下功能:假設(shè)輸入英文字母,那么原樣輸出;輸入其他字符不理會(huì),直到輸入q鍵結(jié)束。#include〞stdio.h〞main(){charch;while(1){ch=getchar();if(ch==’Q’||ch==’q’)break;elseif(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’)putchar(ch);}}6.8break語(yǔ)句和continue語(yǔ)句continue語(yǔ)句:continue;功能:結(jié)束本次循環(huán),跳過(guò)本層循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷。說(shuō)明:continue僅用于循環(huán)語(yǔ)句中??偸桥cif一起使用例

把100~200之間不能被3整除的數(shù)輸出。main(){intn;for(n=100;n<=200;n++){if(n%3==0)continue;printf(“%d",n);}}結(jié)束本次循環(huán),循環(huán)體的剩余語(yǔ)句被忽略,執(zhí)行表達(dá)式3,進(jìn)入下一循環(huán)。continue總是作if的內(nèi)嵌語(yǔ)句此法更佳if(n%3)printf(“%d〞,n);main(){intn;for(n=100;n<=200;n++){if(n%3==0)break;printf(“%d",n);}}說(shuō)明:continue語(yǔ)句只結(jié)束本次循環(huán);

break語(yǔ)句是終止本層循環(huán)的執(zhí)行;要從很多重循環(huán)的內(nèi)層跳到最外層,可考慮用goto語(yǔ)句,但應(yīng)盡量少用。::for()

{for()

{for()

{if()

gotoend;

}}}end:printf〔“error〞〕;continue語(yǔ)句和break語(yǔ)句goto的區(qū)別expr……break;……假(0)真(非0)whiledo……break;…...expr假(0)真(非0)whileexpr2……break;…...假(0)真(非0)forexpr1expr3break;expr……continue;……假(0)真(非0)while真(非0)do……continue;…...expr假(0)whileexpr2……continue;…...假(0)真(非0)forexpr1expr3continue;6.9程序舉例例用以下公式計(jì)算л的值,直到最后一項(xiàng)的絕對(duì)值小于1e-6為止。算法分析:pi=pi+t;t=s/n;s=1或-1交替形式出現(xiàn),n=n+2,初始化:pi=0;n=1;s=1;t=1;程序中不變的是加法:變的是加的內(nèi)容:t的更新,s要更新,n要更新循環(huán)結(jié)束的條件是:當(dāng)|t|1e-6數(shù)據(jù)類型:pi,t必須為float型;n,s可為int型;6.9程序舉例例用以下公式計(jì)算л的值,直到最后一項(xiàng)的絕對(duì)值小于1e-6為止。t=1,pi=0,n=1.0,s=1當(dāng)|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4輸出pi#include<stdio.h>#include<math.h>main(){ints=1;floatn,t,pi;t=1.0;n=1.0;pi=0.0;while(fabs(t)>=1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}例

求Fibonacci數(shù)列:1,1,2,3,5,8,…的前40項(xiàng)。遞推公式:算法分析:1.進(jìn)行20次循環(huán),每次計(jì)算并輸出兩項(xiàng)f1,f2;2.輸出f1,f2后,計(jì)算得到新的f1,f2:f1=f1+f2f2=f2+f1數(shù)據(jù)類型:此數(shù)列增長(zhǎng)很快,f1、f2宜用長(zhǎng)整型〔%ld〕,輸出安排:每行輸出四個(gè)數(shù),即每輸出4個(gè)數(shù)后輸出一個(gè)換行符〔\n〕。f1=1,f2=1fori=1to20輸出f1,f2f1=f1+f2f2=f2+f1例求Fibonacci數(shù)列:1,1,2,3,5,8,…的前40項(xiàng)。遞推公式:main(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf(“%12ld%12ld〞,f1,f2);if(i%2==0)printf(“\n〞);f1=f1+f2;f2=f2+f1;}}f1=1,f2=1fori=1to20輸出f1,f2f1=f1+f2f2=f2+f1例求Fibonacci數(shù)列:1,1,2,3,5,8,…的前40項(xiàng)。遞推公式:1534233159710946750255142293524578241578171855377258417711121393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155例判斷正整數(shù)m是否為素?cái)?shù)。什么是素?cái)?shù)----只能被自身和1整除的自然數(shù)。判斷方法----讓m依次被2,3,4,…,

除,如果m能被其中的任何一個(gè)整數(shù)整除,則不是素?cái)?shù)。循環(huán)次數(shù)----sqrt(m);

數(shù)據(jù)結(jié)構(gòu)----都是整型讀入mk=sqrt(m)i=2當(dāng)ikm被i整除真假用break結(jié)束循環(huán)i=i+1ik+1真假輸出:m是素?cái)?shù)輸出:m不是素?cái)?shù)#include<math.h>main(){intm,i,k;printf("\nInputm:\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprime\n",m);elseprintf("%disnotaprime\n",m);}例求100~200之間的全部素?cái)?shù)。在上題的根底上,外層增加一個(gè)嵌套的for循環(huán)即可。用n作素?cái)?shù)個(gè)數(shù)的計(jì)數(shù),以控制每行輸出10個(gè)數(shù)。#include<math.h>main(){intm,i,k;printf("\nInputm:\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprime\n",m);elseprintf("%disnotaprime\n",m);}

增加intn=0;

for(m=101;m<=200;m+=2)

刪除此行

刪除此行#include<math.h>main(){intm,i,k,n=0;for(m=101;m<=200;m+=2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k){printf("%d",m);n=n+1;}if(n%10==0)printf("\n");

}}

改最后2行main(){introw;for(row=1;row<=5;row++)printf("********\n");}分析:1.圖形每行的起始位置相同。2.每行的字符數(shù)相同。3.用一重循環(huán)控制輸出行數(shù)即可。例打印圖形。分析:1.每行的起始位置不同,空格數(shù)遞減1。2.每行的字符數(shù)相同。3.用二重循環(huán)實(shí)現(xiàn):

外循環(huán)控制輸出行數(shù);

內(nèi)循環(huán)控制輸出的空格數(shù)。main(){introw,col;for(row=1;row<=5;row++){for(col=1;col<=5-row;col++)printf(“〞);//內(nèi)循環(huán)體printf("********\n");}}例打印圖形。分析:1.每行的起始位置不同,空格數(shù):5-row2.每行的字符數(shù)不同,字符數(shù):2*row-13.用二重循環(huán)實(shí)現(xiàn):

外循環(huán)控制輸出行數(shù);

兩個(gè)并列內(nèi)循環(huán)控制輸出每行的空格數(shù)和字符數(shù)例打印圖形。main(){introw,col;for(row=1;row<=5;row++)

{for(col=1;col<=5-row;col++)printf("");for(col=1;col<=2*row-1;col++)printf("*");printf("\n");}}分析:1.需求解階乘i!

2.需求解階乘之和∑i!3.二重循環(huán)。main(){inti,j,n;longsum,term;/*int、long?*/printf("\ninputn:");scanf("%d",&n);{for(term=1,j=1;j<=n;j++){term*=j;/*求j的階乘*/sum=sum+term;/*把j的階乘累加到sum單元中*/}}printf(“\nsum=%ld\n〞,sum);}例計(jì)算s=1!+2!+3!+…+n!,n從鍵盤輸入。例循環(huán)嵌套,輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論