-
- 素材大。
- 1.33 MB
- 素材授權(quán):
- 免費下載
- 素材格式:
- .ppt
- 素材上傳:
- lipeier
- 上傳時間:
- 2018-12-08
- 素材編號:
- 219356
- 素材類別:
- 課件PPT
-
素材預覽
這是c語言循環(huán)結(jié)構(gòu)ppt,包括了while語句,do--while語句,goto語句,break語句和continue語句,循環(huán)的嵌套,循環(huán)中的幾種變量,課外練習等內(nèi)容,歡迎點擊下載。
c語言循環(huán)結(jié)構(gòu)ppt是由紅軟PPT免費下載網(wǎng)推薦的一款課件PPT類型的PowerPoint.
循環(huán)結(jié)構(gòu)程序設計 C 語言程序設計 Lecture 5 循環(huán)結(jié)構(gòu) 循環(huán):就是在給定的條件成立時反復執(zhí)行某一程序段,被反復執(zhí)行的程序段稱為循環(huán)體。 在C語言中可以用以下語句來實現(xiàn)循環(huán): 1、用while語句; 2、用do--while語句; 3、用for語句; 4、用goto語句和if語句構(gòu)成循環(huán)。 5.1 while語句 1、while 語句 常稱為“當型”循環(huán)語句。 2 、while 語句的形式: while (表達式) 循環(huán)體;特點:先判斷表達式,后執(zhí)行語句。說明:循環(huán)體有可能一次也不執(zhí)行循環(huán)體可為任意類型語句下列情況,退出while循環(huán)條件表達式不成立(為零)循環(huán)體內(nèi)遇break,return,goto 無限循環(huán): while(1) 循環(huán)體; 5.2 do--while語句 1、do--while語句 常稱為“直到型”循環(huán)語句。 2、do--while的形式: do 循環(huán)體; while (表達式);特點:先執(zhí)行,后判斷。說明:至少執(zhí)行一次循環(huán)體 do~while可轉(zhuǎn)化成while結(jié)構(gòu) 例(ch5_03.c)用do~while求1+2+3+4+5+···+100。注: 1. 循環(huán)體如果包含一個以上的語句,應該用花括號括起來,以復合語句形式出現(xiàn)。 2. 循環(huán)體中應有使循環(huán)趨于結(jié)束的語句。例:分析下列三個程序段 main() { int i,sum=0; i=1; do { sum=sum+i; i++; }while(i<=100); printf(“%d\n”,sum); } 5.3 for語句 可以用于循環(huán)次數(shù)確定的情況; 可以用于循環(huán)次數(shù)不確定的情況; 可實現(xiàn)while和do--while語句的所有功能。 2、for的形式: for (表達式1;表達式2;表達式3) 循環(huán)體 說明: for語句中expr1, expr2 ,expr3 類型任意,都可省略,但分號;不可省無限循環(huán): for(;;) for語句可以轉(zhuǎn)換成while結(jié)構(gòu) sum=0; for(i=1;i<=100;i++) sum=sum+i; 它相當于以下語句: i=1; while (i<=100) { sum=sum+i; i++; } 3、for語句中表達式的省略(1)for語句一般形式中的“表達式1”可以省略; 如: sum=0;i=1; for ( ; i<=100;i++) sum=sum+i; (2)表達式2省略,即不判斷循環(huán)條件,循環(huán)無終止地進行下去; 如: for(sum=0,i=1;;i++) { sum=sum+i; } (3)表達式3也可以省略,但此時保證循環(huán)能正常結(jié)束。 如:for(sum=0,i=1;i<=100;) { sum=sum+i; i++; } (4) 可以省略表達式1和表達式3,只有表達式2。 如:i=1; sum=0; i=1;sum=0; for (;i<=100;) while (i<=100) { sum=sum+i; { sum=sum+i; i++; i++; } } (5)三個表達式都可省略, 如: for ( ; ; ) 循環(huán)體; 相當于 while (1) 循環(huán)體; 即不設初值,不判斷條件,循環(huán)變量不增值。無終止地執(zhí)行循環(huán)體。 如: sum=0,i=1; for(;;) { if(i>100) break; sum=sum+i; i++; } (6)循環(huán)體為空語句 對for語句,循環(huán)體為空語句的一般形式為: for (表達式1;表達式2;表達式3) ; 如:for(sum=0,i=1;i<=100;sum+=i, i++) ; 又如: 要在顯示器上復制輸入的字符,輸入的字符為‘.’時, 結(jié)束循環(huán)。 while(putchar(getchar( ) )!=’.’ ) ; 循環(huán)終止條件的種類: 1.關(guān)系表達式: 如前幾例 2.邏輯表達式: for (; a>b && x
0;j--) /*輸出i-1到1*/ printf(“%d”, j); printf(“\n”); } } 5.7 循環(huán)程序設計的問題 寫循環(huán),先要發(fā)現(xiàn)循環(huán)。注意計算中的重復性動作,引進循環(huán)可能統(tǒng)一描述和處理。 重復動作的常見例子: 累積一批可按規(guī)律算出的數(shù)據(jù)(如累加等); 反復從一個結(jié)果算出下一結(jié)果(遞推等,見教材P71例5.9); 對一批數(shù)據(jù)做同樣的加工處理;等。寫循環(huán)結(jié)構(gòu)時要考慮和解決的問題:循環(huán)涉及哪些變量,引進什么臨時性變量? 這些變量在循環(huán)正式開始前應給什么初值?循環(huán)如何開始? 每次循環(huán)中變量的值應如何改變? 什么情況下繼續(xù)循環(huán)(什么情況下終止)? 循環(huán)終止后如何得到所需結(jié)果?循環(huán)中的幾種變量 循環(huán)中常出現(xiàn)幾類變量,了解這些有助于思考和分析。這也是寫循環(huán)程序的經(jīng)驗總結(jié)。 1)循環(huán)控制變量(循環(huán)變量):循環(huán)前設初值,循環(huán)遞增/遞減,達到/超過界限時循環(huán)結(jié)束?刂蒲h(huán)的進行/結(jié)束。 for中常有這類變量。 for(n = 0; n < 10; n++)...... for(n = 2; n < 52; n += 4) ...... 2)累積變量:循環(huán)中常用+=或*=等更新。初值常用運算的單位元(加用0;乘用1為初值)。循環(huán)結(jié)束時變量終值被作為循環(huán)計算結(jié)果。 3)遞推變量:前兩類變量的推廣形式。復雜循環(huán)常用幾個協(xié)同的變量,每次由一個/幾個變量推出一個新值,其余依次更新。 對變量x1、x2、x3,循環(huán)體可能有序列: x1 = x0...; x2 = x1...; x3 = ... x1 ... x2 ...; 本章重點三種循環(huán)語句while, do---while和for 建立循環(huán)通常有以下情況: 1. 給定次數(shù), for比較適用 for(i=1;i<100;i++) 2. 給定條件, while比較適用 while((x+y)‘a’ &&c <‘z’)||(c>‘A’&& c<‘Z’) 本章作業(yè)求23+24+…+210之和。輸入兩個正整數(shù)a和b,其中ab) { t=a; a=b; b=t; } for(x=a;x<=b;x+=2) if(x%2) printf("%4d",x+1); else printf("%4d",x); } 3. main() { int a,n,s; s=0,n=0; for(a=1;;a++) { n++; s+=a; if(s>1000) break; } printf("s=%d,n=%d",s,n); } 5. main() { int i,n=0; float score[30],aver=0.0; for(i=0;i<30;i++) { aa: scanf("%f",&score[i]); if(score[i]>100||score[i]<0) { printf("Error! "); goto aa; } aver+=score[i]; } aver=aver/30; for(i=0;i<30;i++) if(score[i]>aver) n++; printf("aver=%f,n=%d\n",aver,n); } 7. main() { int i; long n=1; for(i=1;i<=10;i++) { n=n*5; printf(“%0d\n”,n); } } 5.8 程序舉例 main() { float a,b,h,n1,n2,s=0; int i; printf(“請輸入積分限a和b:”); scanf(“%f%f”,&a,&b); h=(b-a)/1000; for(i=0;i<1000;i++) { n1=4-(a+i*h)*(a+i*h); n2=4-(a+(i+1)*h)*(a+(i+1)*h); s+=(n1+n2)*h/2; } printf(“s=%10.2f\n”,s); } [例] 猜數(shù)游戲的最簡化版。 #include #define GOAL 39 main() { int i; printf(“Please input a integer number:\n"); do { scanf("%d",&i); if(i>GOAL) printf("%d is too big,input again.\n",i); else if(i #include main() { int i; int GOAL,num=0; printf("Please input a number from 0 to 99, or -1 to exit:\n"); GOAL=random(100); /*產(chǎn)生0到99的隨機數(shù)*/ do { scanf("%d",&i); if(i==-1) { printf("\nExit game!"); break; } num++; if(i>GOAL) printf("%d is too big, input again.\n",i); else if(iE, W-->A.非字母字符忽略。思路: 1.建立循環(huán), 循環(huán)結(jié)束以輸入回車符為準 while (c=getchar()!=’\n’) 2. 判斷輸入是否是字符,否則忽略 if ((c>=’a’ && c<=’z’) || (c>=’A’ && c<=’Z’)) 3.變成其后的第四個字母 c=c+4; 4. 若變換后超出z時,要輪回. If ((c>’Z’ && c<‘a’)||(c>’z’)) c=c-26 [例] 輸入若干數(shù)字,-1為輸入結(jié)束標志,計算它們的平均數(shù)。 [例] 汽車里程表上的讀數(shù)是95859,7小時之后里程表的讀數(shù)是一個對稱數(shù)(最大是5位數(shù)),問汽車的速度(是一個整數(shù))。 解題思路: 檢查所有的在95859到99999之間的對稱數(shù),如果它與95859的差能被7整除,則商是速度。 /* 第一種算法*/ 5. 9 課堂練習 百錢買百雞:雞翁1,錢值5; 雞母1,錢值3;雞 雛3,錢值1;何以百錢買百雞? main() { int x,y,z; for (x=1 to 20) for (y=1 to 33) if ((x*5+y*3+(100-x-y)/3.0)==100) printf(“x=%d,y=%d,z=%d”,x,y,100-x-y); } 打印出100到200之間所有的素數(shù) #include “math.h” main() { int n,m, i, k; for (n=100;n<=200;n++) { k=sqrt(n); for (i=2;i<=k;i++) if ((n % i)==0) break; if (i=k+1) printf(“%d prime number\n”,m); else printf(“%d not a prime\n”,m); } 課外練習一、每個蘋果0.8元,第一天買兩個蘋果。從第二天開始,每天買前一天的2倍,當每天購買蘋果的數(shù)大于100時,則停止. 求平均每天花多少錢? 二、輸入一行字符,回車為結(jié)束,分別統(tǒng)計出其中的英文字母,空格,數(shù)字和其它字符的個數(shù)。 人教版循環(huán)小數(shù)ppt:這是人教版循環(huán)小數(shù)ppt,包括了創(chuàng)設情境,引入新課,自主探究,構(gòu)建新知,練習鞏固,深化認識,課堂小結(jié),暢談收獲,作業(yè)練習,快樂鞏固內(nèi)容,歡迎點擊下載。
循環(huán)結(jié)構(gòu)程序設計ppt:這是循環(huán)結(jié)構(gòu)程序設計ppt,包括了循環(huán)結(jié)構(gòu),用For-Next語句實現(xiàn)循環(huán)結(jié)構(gòu),用Do While-Loop語句實現(xiàn)循環(huán)結(jié)構(gòu),嵌套的循環(huán)結(jié)構(gòu)等內(nèi)容,歡迎點擊下載。
人力資源與工薪循環(huán)ppt:這是人力資源與工薪循環(huán)ppt,包括了人力資源與工薪循環(huán)及其控制測試,人力資源與工薪循環(huán)的實質(zhì)性程序,應付職工薪酬的實質(zhì)性程序等內(nèi)容,歡迎點擊下載。