C語言程序設計-單元五循環(huán)結構程序設計課件_第1頁
C語言程序設計-單元五循環(huán)結構程序設計課件_第2頁
C語言程序設計-單元五循環(huán)結構程序設計課件_第3頁
C語言程序設計-單元五循環(huán)結構程序設計課件_第4頁
C語言程序設計-單元五循環(huán)結構程序設計課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

循環(huán)結構程序設計C語言程序設計高等教育出版社新形態(tài)一體化教材單元五循環(huán)結構程序設計C語言程序設計高等教育出版社新形態(tài)一體1導學【問題1】某大賽中重復要做的事情是什么?【問題2】滿足什么條件大賽可繼續(xù)執(zhí)行?導學【問題1】某大賽中重復要做的事情是什么?【問題2】滿足什2目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質循環(huán)的本質目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質31循環(huán)的本質——引例987771號:總分31分8762號:總分28分▲評委亮分▲計算總分

在某一條件成立的情況下反復做重復性的事情,這就是循環(huán)。某大賽重復的事情有:1循環(huán)的本質——引例987771號:總分31分8762號:總41循環(huán)的本質如何用程序設計語言來描述大賽問題呢?inti=1;設i為評委編號,整型,初始值為1設score存評委分數(shù),sum存總分并設初值為0.0,均為浮點型floatscore,sum=0.0;在

i<=4的條件下反復執(zhí)行如下操作:scanf("%f",&score);播報(輸入)當前評委亮出的分數(shù)scoresum+=score; 累加到總分sumi++;評委編號遞增1⑴變量定義⑵算法描述1循環(huán)的本質如何用程序設計語言來描述大賽問題呢?inti=51循環(huán)的本質⑶減少源代碼的存儲空間,提高程序質量。⑴可重復執(zhí)行某些相同代碼的程序段;⑵將程序員從大量重復編寫相同代碼的工作中解放出來,提高程序編寫效率;循環(huán)的本質【循環(huán)結構的任務】1循環(huán)的本質⑶減少源代碼的存儲空間,提高程序質量。⑴可重61循環(huán)的本質⑶每次循環(huán)要做什么,即“反復執(zhí)行的語句”,稱為“循環(huán)體”。⑴循環(huán)從什么時候開始,即“循環(huán)變量初值”。⑵滿足什么條件要循環(huán),即“循環(huán)控制條件表達式”。i=1;i<=4scanf("%f",&score);sum+=score;i++;循環(huán)變量初值循環(huán)控制條件表達式循環(huán)體循環(huán)結構三要素【概括大賽問題】1循環(huán)的本質⑶每次循環(huán)要做什么,即“反復執(zhí)行的語句”,稱為7目錄3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句三種循環(huán)語句目錄3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句82三種循環(huán)語句——while語句while(表達式){

循環(huán)體;}【一般格式】

循環(huán)控制條件表達式由一條或多條語句組成,當“循環(huán)體”僅有一條語句時,可省略“{}”。表達式真?循環(huán)體真(非0)假(0)【流程圖】2三種循環(huán)語句——while語句while(表達式)【一般格92三種循環(huán)語句——while語句——示例利用while語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti=1;

while(i<=10)

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;

}printf(“該選手的總分為:%.2lf.\n",sum);}循環(huán)控制條件循環(huán)體2三種循環(huán)語句——while語句——示例利用while語句計102三種循環(huán)語句——while語句——隨堂練習利用while語句計算1~n中的奇數(shù)之和及偶數(shù)之和?!咎崾尽竣舗的值在程序執(zhí)行時通過鍵盤輸入⑵各變量初值如何設計?⑷循環(huán)變量增量如何設計?⑶循環(huán)條件如何設計?2三種循環(huán)語句——while語句——隨堂練習利用while語112三種循環(huán)語句——do…while語句do{

循環(huán)體;}while(表達式);【一般格式】

表達式后必須有;【流程圖】表達式真?循環(huán)體真(非0)假(0)2三種循環(huán)語句——do…while語句do【一般格式】表達122三種循環(huán)語句——do…while語句——示例利用while語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti=1;

do

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;

}while(i<=10);printf(“該選手的總分為:%.2lf.\n",sum);}2三種循環(huán)語句——do…while語句——示例利用while132三種循環(huán)語句——do…while語句——隨堂練習利用do…while語句計算1+1/2+1/3+…+1/n?!咎崾尽竣舗的值在程序執(zhí)行時通過鍵盤輸入⑵各變量的數(shù)據(jù)類型如何設計?⑶“1”與“1.0”有什么區(qū)別?2三種循環(huán)語句——do…while語句——隨堂練習利用do…142三種循環(huán)語句——for語句【一般格式】

【流程圖】for(表達式1;表達式2;表達式3){

循環(huán)體;}表達式之間用;分隔表達式2?循環(huán)體真(非0)表達式1表達式3假(0)2三種循環(huán)語句——for語句【一般格式】【流程圖】for(152三種循環(huán)語句——for語句——示例利用for語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti;

for(i=1;i<=10;i++)

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;}printf(“該選手的總分為:%.2lf.\n",sum);}2三種循環(huán)語句——for語句——示例利用for語句計算大賽選162三種循環(huán)語句——for語句——隨堂練習利用for語句計算1+1/2+1/3+…+1/n?!咎崾尽竣舗的值在程序執(zhí)行時通過鍵盤輸入⑵各變量的數(shù)據(jù)類型如何設計?⑶若“intn=2;”,“1/n”的值是多少?“1.0/n”又是多少?2三種循環(huán)語句——for語句——隨堂練習利用for語句計算117目錄4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句3循環(huán)結構控制語句循環(huán)結構控制語句目錄4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句3循環(huán)結構控制語句183循環(huán)結構控的制語句——break語句——引例while(表達式1){……if(表達式2)

break;……

}在程序執(zhí)行的過程中,如果“表達式2”為真,則執(zhí)行break語句,此時也會終止循環(huán)。正常情況下,該循環(huán)結構的執(zhí)行由循環(huán)控制條件“表達式1”控制,當“表達式1”為假時,循環(huán)結束。【一般格式】

break;結束循環(huán)3循環(huán)結構控的制語句——break語句——引例while(193循環(huán)結構控的制語句——break語句——示例

設計一個程序實現(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵結束。#include<stdio.h> voidmain()

{

char

ch;

while(1)

{ch=getchar();

if(ch=='\n')

break;

elseif(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

putchar(ch);

}

}結束循環(huán)3循環(huán)結構控的制語句——break語句——示例203循環(huán)結構控的制語句——continue語句

——引例while(表達式1){……if(表達式2)

continue;……

}在執(zhí)行循環(huán)體的過程中。如果“表達式2”為真,執(zhí)行continue語句,即不再執(zhí)行continue后面的循環(huán)體語句,轉到“表達式1”進行下一次循環(huán)控制條件的判定。在循環(huán)控制條件“表達式1”成立的情況下,則執(zhí)行循環(huán)體?!疽话愀袷健?/p>

continue;結束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。3循環(huán)結構控的制語句——continue語句——引例whi213循環(huán)結構控的制語句——continue語句

——示例

設計一個程序實現(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵結束。#include<stdio.h> voidmain()

{

char

ch;

while((ch=getchar())!='\n')

{

if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

continue;

putchar(ch);

}

}結束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。3循環(huán)結構控的制語句——continue語句——示例22目錄1循環(huán)的本質2三種循環(huán)語句4循環(huán)應用循環(huán)應用3循環(huán)結構控制語句目錄1循環(huán)的本質2三種循環(huán)語句4循環(huán)應用循環(huán)應用3循環(huán)結構234循環(huán)應用

【應用1】自冪數(shù)是指一個n位整數(shù),它的每個位上的數(shù)字的n次冪之和等于它本身。當n為4時,自冪數(shù)稱為玫瑰花數(shù),試編程輸出1000~9999范圍內所有的玫瑰花數(shù)。(形如14+64+34+44=1634)【分析】設這個四位整數(shù)為n,它的各位數(shù)字從低到高分別為a、b、c和d。a=n%10

b=n/10%10

c=n/100%10

d=n/1000個位十位百位千位4循環(huán)應用【應用1】自冪數(shù)是指一個n位整數(shù),它244循環(huán)應用#include<stdio.h>voidmain(){int

i,n,a,b,c,d;

for(i=1000;i<=9999;i++)

{n=i;

a=n%10;

b=n/10%10;

c=n/100%10;

d=n/1000;

if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)

printf("%6d",n);

}}163482089474輸出結果4循環(huán)應用#include<stdio.h>1634輸出結254循環(huán)應用

【應用2】百元百雞問題。我國古代數(shù)學家張丘鍵在《算經(jīng)》中出了一道題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?【分析】設一百只雞中公雞、母雞、小雞分別為x,y,z,問題化為三元一次方程組。

(百錢)(百雞)x、y、z的取值范圍:⑴x的取值范圍為1~20;⑵y的取值范圍為1~33;⑶z的取值范圍為3~99,步長為3。x、y、z為正整數(shù),且z是3的倍數(shù);由于雞和錢的總數(shù)都是100。用窮舉的方法,遍歷x,y,z的所有可能組合,最后得到問題的解。4循環(huán)應用【應用2】百元百雞問題。我國古代數(shù)學家張26#include<stdio.h>voidmain(){

intgongji,muji,xiaoji;

for(gongji=1;gongji<=20;gongji++)//公雞可能的數(shù)量范圍

{

for(muji=1;muji<=33;muji++)

//母雞可能的數(shù)量范圍

{

for(xiaoji=3;xiaoji<=100;xiaoji=xiaoji+3)//小雞可能的數(shù)量范圍

{

if((xiaoji/3+muji*3+gongji*5==100)&&(xiaoji+muji+gongji==100))

printf("%4d\t%4d\t%4d\n",gongji,muji,xiaoji);

}

}

}}4循環(huán)應用輸出結果:公雞

母雞

小雞418788118112484#include<stdio.h>4循環(huán)應用輸出結果:公雞27目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質28總結循環(huán)可減少重復代碼,提高程序質量循環(huán)的本質三種循環(huán)語句循環(huán)結構控制語句while語句是先判斷、后執(zhí)行的語句do…while是先執(zhí)行、后判斷的語句for循環(huán)適用于循環(huán)次數(shù)確定的情況continue;結束本次循環(huán),進行下一次循環(huán)break;結束循環(huán)總結循環(huán)可減少重復代碼,提高程序質量循環(huán)的本質三種循環(huán)語29謝謝!謝謝!30循環(huán)結構程序設計C語言程序設計高等教育出版社新形態(tài)一體化教材單元五循環(huán)結構程序設計C語言程序設計高等教育出版社新形態(tài)一體31導學【問題1】某大賽中重復要做的事情是什么?【問題2】滿足什么條件大賽可繼續(xù)執(zhí)行?導學【問題1】某大賽中重復要做的事情是什么?【問題2】滿足什32目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質循環(huán)的本質目錄2三種循環(huán)語句3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質331循環(huán)的本質——引例987771號:總分31分8762號:總分28分▲評委亮分▲計算總分

在某一條件成立的情況下反復做重復性的事情,這就是循環(huán)。某大賽重復的事情有:1循環(huán)的本質——引例987771號:總分31分8762號:總341循環(huán)的本質如何用程序設計語言來描述大賽問題呢?inti=1;設i為評委編號,整型,初始值為1設score存評委分數(shù),sum存總分并設初值為0.0,均為浮點型floatscore,sum=0.0;在

i<=4的條件下反復執(zhí)行如下操作:scanf("%f",&score);播報(輸入)當前評委亮出的分數(shù)scoresum+=score; 累加到總分sumi++;評委編號遞增1⑴變量定義⑵算法描述1循環(huán)的本質如何用程序設計語言來描述大賽問題呢?inti=351循環(huán)的本質⑶減少源代碼的存儲空間,提高程序質量。⑴可重復執(zhí)行某些相同代碼的程序段;⑵將程序員從大量重復編寫相同代碼的工作中解放出來,提高程序編寫效率;循環(huán)的本質【循環(huán)結構的任務】1循環(huán)的本質⑶減少源代碼的存儲空間,提高程序質量。⑴可重361循環(huán)的本質⑶每次循環(huán)要做什么,即“反復執(zhí)行的語句”,稱為“循環(huán)體”。⑴循環(huán)從什么時候開始,即“循環(huán)變量初值”。⑵滿足什么條件要循環(huán),即“循環(huán)控制條件表達式”。i=1;i<=4scanf("%f",&score);sum+=score;i++;循環(huán)變量初值循環(huán)控制條件表達式循環(huán)體循環(huán)結構三要素【概括大賽問題】1循環(huán)的本質⑶每次循環(huán)要做什么,即“反復執(zhí)行的語句”,稱為37目錄3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句三種循環(huán)語句目錄3循環(huán)結構控制語句4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句382三種循環(huán)語句——while語句while(表達式){

循環(huán)體;}【一般格式】

循環(huán)控制條件表達式由一條或多條語句組成,當“循環(huán)體”僅有一條語句時,可省略“{}”。表達式真?循環(huán)體真(非0)假(0)【流程圖】2三種循環(huán)語句——while語句while(表達式)【一般格392三種循環(huán)語句——while語句——示例利用while語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti=1;

while(i<=10)

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;

}printf(“該選手的總分為:%.2lf.\n",sum);}循環(huán)控制條件循環(huán)體2三種循環(huán)語句——while語句——示例利用while語句計402三種循環(huán)語句——while語句——隨堂練習利用while語句計算1~n中的奇數(shù)之和及偶數(shù)之和?!咎崾尽竣舗的值在程序執(zhí)行時通過鍵盤輸入⑵各變量初值如何設計?⑷循環(huán)變量增量如何設計?⑶循環(huán)條件如何設計?2三種循環(huán)語句——while語句——隨堂練習利用while語412三種循環(huán)語句——do…while語句do{

循環(huán)體;}while(表達式);【一般格式】

表達式后必須有;【流程圖】表達式真?循環(huán)體真(非0)假(0)2三種循環(huán)語句——do…while語句do【一般格式】表達422三種循環(huán)語句——do…while語句——示例利用while語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti=1;

do

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;

}while(i<=10);printf(“該選手的總分為:%.2lf.\n",sum);}2三種循環(huán)語句——do…while語句——示例利用while432三種循環(huán)語句——do…while語句——隨堂練習利用do…while語句計算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序執(zhí)行時通過鍵盤輸入⑵各變量的數(shù)據(jù)類型如何設計?⑶“1”與“1.0”有什么區(qū)別?2三種循環(huán)語句——do…while語句——隨堂練習利用do…442三種循環(huán)語句——for語句【一般格式】

【流程圖】for(表達式1;表達式2;表達式3){

循環(huán)體;}表達式之間用;分隔表達式2?循環(huán)體真(非0)表達式1表達式3假(0)2三種循環(huán)語句——for語句【一般格式】【流程圖】for(452三種循環(huán)語句——for語句——示例利用for語句計算大賽選手總分。(有10位評委)#include<stdio.h>voidmain(){

double

score,sum=0;

inti;

for(i=1;i<=10;i++)

{printf("請第%d位評委亮分:",i);scanf("%lf",&score);sum=sum+score;}printf(“該選手的總分為:%.2lf.\n",sum);}2三種循環(huán)語句——for語句——示例利用for語句計算大賽選462三種循環(huán)語句——for語句——隨堂練習利用for語句計算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序執(zhí)行時通過鍵盤輸入⑵各變量的數(shù)據(jù)類型如何設計?⑶若“intn=2;”,“1/n”的值是多少?“1.0/n”又是多少?2三種循環(huán)語句——for語句——隨堂練習利用for語句計算147目錄4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句3循環(huán)結構控制語句循環(huán)結構控制語句目錄4循環(huán)應用1循環(huán)的本質2三種循環(huán)語句3循環(huán)結構控制語句483循環(huán)結構控的制語句——break語句——引例while(表達式1){……if(表達式2)

break;……

}在程序執(zhí)行的過程中,如果“表達式2”為真,則執(zhí)行break語句,此時也會終止循環(huán)。正常情況下,該循環(huán)結構的執(zhí)行由循環(huán)控制條件“表達式1”控制,當“表達式1”為假時,循環(huán)結束。【一般格式】

break;結束循環(huán)3循環(huán)結構控的制語句——break語句——引例while(493循環(huán)結構控的制語句——break語句——示例

設計一個程序實現(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵結束。#include<stdio.h> voidmain()

{

char

ch;

while(1)

{ch=getchar();

if(ch=='\n')

break;

elseif(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

putchar(ch);

}

}結束循環(huán)3循環(huán)結構控的制語句——break語句——示例503循環(huán)結構控的制語句——continue語句

——引例while(表達式1){……if(表達式2)

continue;……

}在執(zhí)行循環(huán)體的過程中。如果“表達式2”為真,執(zhí)行continue語句,即不再執(zhí)行continue后面的循環(huán)體語句,轉到“表達式1”進行下一次循環(huán)控制條件的判定。在循環(huán)控制條件“表達式1”成立的情況下,則執(zhí)行循環(huán)體?!疽话愀袷健?/p>

continue;結束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。3循環(huán)結構控的制語句——continue語句——引例whi513循環(huán)結構控的制語句——continue語句

——示例

設計一個程序實現(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵結束。#include<stdio.h> voidmain()

{

char

ch;

while((ch=getchar())!='\n')

{

if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

continue;

putchar(ch);

}

}結束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。3循環(huán)結構控的制語句——continue語句——示例52目錄1循環(huán)的本質2三種循環(huán)語句4循環(huán)應用循環(huán)應用3循環(huán)結構控制語句目錄1循環(huán)的本質2三種循環(huán)語句4循環(huán)應用循環(huán)應用3循環(huán)結構534循環(huán)應用

【應用1】自冪數(shù)是指一個n位整數(shù),它的每個位上的數(shù)字的n次冪之和等于它本身。當n為4時,自冪數(shù)稱為玫瑰花數(shù),試編程輸出1000~9999范圍內所有的玫瑰花數(shù)。(形如14+64+34+44=1634)【分析】設這個四位整數(shù)為n,它的各位數(shù)字從低到高分別為a、b、c和d。a=n%10

b=n/10%10

c=n/100%10

d=n/1000個位十位百位千位4循環(huán)應用【應用1】自冪數(shù)是指一個n位整數(shù),它544循環(huán)應用#include<stdio.h>voidmain(){int

i,n,a,b,c,d;

for(i=1000;i<=9999;i++)

{n=i;

a=n%10;

b=n/10%10;

c=n/100%10;

d=n/1000;

if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d

溫馨提示

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

評論

0/150

提交評論