C語言第三次作業(yè)答案市公開課特等獎(jiǎng)市賽課微課一等獎(jiǎng)?wù)n件_第1頁
C語言第三次作業(yè)答案市公開課特等獎(jiǎng)市賽課微課一等獎(jiǎng)?wù)n件_第2頁
C語言第三次作業(yè)答案市公開課特等獎(jiǎng)市賽課微課一等獎(jiǎng)?wù)n件_第3頁
C語言第三次作業(yè)答案市公開課特等獎(jiǎng)市賽課微課一等獎(jiǎng)?wù)n件_第4頁
C語言第三次作業(yè)答案市公開課特等獎(jiǎng)市賽課微課一等獎(jiǎng)?wù)n件_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章語句、程序控制結(jié)構(gòu)(次序、選擇、循環(huán))第1頁4.1C語句總述C語句普通以分號(hào)“;”為結(jié)束標(biāo)志,可分為以下六類:1.表示式語句表示式語句由表示式加上分號(hào)“;”組成。如:x*=8;/*賦值表示式語句*/a=5,b=7,c=16;/*逗號(hào)表示式語句*/x>y?x:y;/*條件表示式語句*/--a&&++b&&++c;/*邏輯表示式語句*/i++;/*算術(shù)表示式語句*/

第2頁2.說明語句變量定義語句和函數(shù)說明語句統(tǒng)稱說明語句。如:inta,b,*p,i=0;floatadd(float,float);/*函數(shù)說明語句*/3.空語句?只有分號(hào)“;”組成語句稱為空語句??照Z句是什么也不執(zhí)行語句。?在程序中空語句可用來作空循環(huán)體或轉(zhuǎn)向點(diǎn)。如:while(getchar()!='\n')

;本語句功效是,只要從鍵盤輸入字符不是回車則重新輸入第3頁4.復(fù)合語句?把多個(gè)語句用括號(hào){}括起來組成一個(gè)語句稱為復(fù)合語句。?在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。如:{t=x;x=y;y=t;}5.函數(shù)調(diào)用語句*由函數(shù)名、實(shí)際參數(shù)加上分號(hào)“;”組成。如:printf("CProgram");第4頁6.控制語句控制語句用于控制程序流程,以實(shí)現(xiàn)程序各種結(jié)構(gòu)方式。它們由特定語句定義符組成。C語言有九種控制語句,可分成以下三類:?條件判斷語句:if語句、switch語句;?循環(huán)執(zhí)行語句:dowhile語句、while語句、for語句;?轉(zhuǎn)向語句:break語句、continue語句、goto語句、return語句。第5頁4.2次序結(jié)構(gòu)C語言中次序結(jié)構(gòu)主要由說明語句、表示式語句、空語句以及復(fù)合語句組成。在次序結(jié)構(gòu)程序中,各語句(或命令)是按照位置先后次序次序執(zhí)行,且每個(gè)語句都會(huì)被執(zhí)行到。例:輸入兩個(gè)整數(shù),編程完成兩數(shù)交換。

main(){inta,b,t;scanf("%d%d",&a,&b);t=a;a=b;b=t;printf("%d%d",a,b);}

main(){inta,b;scanf("%d%d",&a,&b);a=a+b;b=a-b;a=a-b;printf("%d%d\n",a,b);}

第6頁4.3選擇結(jié)構(gòu)它所要處理問題是依據(jù)“條件”判斷結(jié)果決定程序執(zhí)行流向,所以該結(jié)構(gòu)也被稱為判斷結(jié)構(gòu)。程序執(zhí)行流向是依據(jù)條件表示式值是“0”還是非“0”來決定(流程)。設(shè)計(jì)選擇結(jié)構(gòu)程序,需要考慮兩個(gè)方面問題:一是在C語言中怎樣來表示條件(條件表示式),二是在C語言中實(shí)現(xiàn)選擇結(jié)構(gòu)用什么語句(if/switch結(jié)構(gòu))。簡(jiǎn)單if語句if-else語句if-elseif…-else語句

switch語句A塊B塊P0(假)非0(真)第7頁3.1簡(jiǎn)單if語句語法形式:

if(表示式)語句其中表示式是決定程序流向條件語句能夠是單語句或復(fù)合語句語句表示式假真第8頁if語句示例例1:輸入任意三個(gè)整數(shù)a、b、c,求三個(gè)數(shù)中最大值(例4.2)main()/*注意三段式編程思想*/{inta,b,c,max;printf("Pleaseinputthreenumbers:");scanf(“%d,%d,%d”,&a,&b,&c);/*輸入數(shù)據(jù)語句*/max=a;if(b>a)max=b;if(c>max)max=c;/*算法處理部分*/printf(“max=%d\n”,max);/*輸出結(jié)果語句*/}第9頁*例2:輸入x,y兩整數(shù),按小到大次序輸出。main(){intx,y,t; scanf(“%d,%d”,&x,&y);/*輸入*/

if(x>y){t=x;x=y;y=t;}/*算法處理*/

printf(“%d,%d\n”,x,y);/*輸出*/}運(yùn)行結(jié)果,輸入:4,1輸出:1,4第10頁3.2if-else語句語法

if(表示式)語句1else語句2語句1表示式假真語句2第11頁if-else語句示例例1.輸入一個(gè)整數(shù),輸出該整數(shù)絕對(duì)值main(){intn;scanf("%d",&n);if(n>=0)printf("%d",n);elseprintf("%d",-n);}printf(“%d”,n>=0?n:-n);第12頁*例2.用if-else語句求輸入三個(gè)整數(shù)中最大數(shù)main(){inta,b,c,max;scanf(“%d%d%d”,&a,&b,&c);max=a;if(c>b){if(c>a)max=c;}else{if(b>a)max=b;}printf("max=%d\n",max);}max=bF輸出maxmax=c輸入a,b,cmax=ac>ac>bTTTFb>aF第13頁3.3系列if語句if(條件1)語句1

elseif(條件2)語句2elseif(條件3)語句3

elseif(條件n)語句nelse語句n+1

其中最終一個(gè)else在無語句n+1時(shí)能夠省略????第14頁系列if結(jié)構(gòu)流程圖條件1條件2語句1語句2語句n語句n+1條件n???TFFTFT第15頁系列if結(jié)構(gòu)示例例1.用elseif結(jié)構(gòu)求解一元二次方程ax2+bx+c=0根,系數(shù)a、b、c值從鍵盤輸入。見98頁例4.4)第16頁p=(b*b-4*a*c);real=-b/(2*a)imag=sqrt(fabs(p))/(2*a)輸出2復(fù)根real±imagi輸入a,b,c輸出根-c/ba!=0TTTFFa==0&&b!=0p==0p<0FFT非法或無意義輸出2實(shí)根real±imag輸出根-b/(2*a)求一元二次方程流程圖第17頁例2:從鍵盤輸入成績(jī)score,編程要求能有以下輸出:

score<60,輸出E;60≤score<70,輸出D;70≤score<80,輸出C;80≤score<90,輸出B;90≤score,輸出A。

第18頁main(){intscore;printf("Enterascore:\n");scanf("%d",&score);if(score<60)printf(“E");elseif(score<70)printf("D");elseif(score<80)printf("C");elseif(score<90)printf("B");elseprintf("A");}第19頁應(yīng)用if結(jié)構(gòu)注意事項(xiàng)1.在if結(jié)構(gòu)中,語句能夠是簡(jiǎn)單語句也能夠是復(fù)合語句,但復(fù)合語句一定要加{}例:已知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z值是? if(x>y) z=x;x=y;y=z;2.if結(jié)構(gòu)與++、--綜合應(yīng)用時(shí)遵照原來自增自減運(yùn)算符應(yīng)用規(guī)則

例:下面程序運(yùn)行后結(jié)果是? main() {intm=5; if(m++>5)printf(“%d\n”,m); elseprintf(“%d\n”,m--); }3if結(jié)構(gòu)能夠嵌套使用,當(dāng)有眾多if和else時(shí),else必須和if配對(duì)使用,且else總是跟它上面最近if配對(duì)第20頁例:下面這段程序執(zhí)行后,x值為?main(){inta=1,b=3,c=5,d=4,x;if(a<b)/*如是if(a>b),則x=?*/ if(c<d)x=1; else if(a<c) if(b<d)x=2; elsex=3; elsex=6; elsex=7; printf("x=%d",x);}注意:在if-else嵌套結(jié)構(gòu)中,else總是與它上面最近if配對(duì)if(a<b)x=2if(a>b)x=7第21頁3.4switch語句

switch結(jié)構(gòu)是多分支選擇結(jié)構(gòu),依據(jù)表示式值不一樣,程序轉(zhuǎn)入不一樣模塊執(zhí)行?switch結(jié)構(gòu)語法形式

switch(表示式){case常量表示式1:語句1;case常量表示式2:語句2;……case常量表示式n:語句n;default:語句n+1;}第22頁不帶break語句switch結(jié)構(gòu)圖e==e1e==e2e==e3e==en語句1語句2語句3語句n語句n+1……TTTTFFFFdefault其中:e為表示式e1、e2···en為常量表示式1、2···n第23頁帶break語句switch結(jié)構(gòu)?實(shí)際使用時(shí),普通要使程序在執(zhí)行一個(gè)case語句后退出switch結(jié)構(gòu),可用break語句將上述switch結(jié)構(gòu)改成:switch(表示式){case常量表示式1:語句1;break;

case常量表示式2:語句2;break;case常量表示式n:語句n;break;default:語句n+1;}第24頁e==e1e==e2e==e3e==en語句1語句2語句3語句n語句n+1…TTTTFFFFdefault其中:e為表示式e1、e2···en為常量表示式1、2···n第25頁例4.6用switch結(jié)構(gòu)編寫可處理四則運(yùn)算程序main(){floatv1,v2;charoperator;printf("Pleasetypeyourexpression:\n");scanf("%f%c%f",&v1,&operator,&v2);switch(operator){case'+':printf("v1+v2=%.2f\n",v1+v2);break;case'-':printf("v1-v2=%.2f\n",v1-v2);break;第26頁case'*':printf("v1*v2=%.2f\n",v1*v2);break;case'/':if(v2==0)printf("divisionbyzero.\n");elseprintf("v1/v2=%.2f\n",v1/v2);break;default:printf("unknownoperator.\n");}}第27頁switch使用說明每個(gè)case后面常量表示式值必須互不相同,以免程序執(zhí)行流程產(chǎn)生矛盾switch后面括號(hào)內(nèi)表示式,能夠是整型或字符型表示式或枚舉型數(shù)據(jù)加上break語句能夠使程序執(zhí)行某一分支后直接退出switch結(jié)構(gòu)多個(gè)case語句能夠共用一組執(zhí)行語句如:case4:case5:case6:case7:d=8;break;第28頁switch與if-elseif-else改寫用if-elseif語句寫成程序:從鍵盤輸入成績(jī)score,編程要求能有以下輸出:score<60,輸出E;60≤score<70,輸出D;70≤score<80,輸出C;80≤score<90,輸出B;90≤score,輸出A。第29頁main(){intscore,s1;printf("Enterascore:\n");scanf("%d",&score);switch(s1=score/10)printf(“%d:”,socre);{case6:printf("D\n');break;case7:printf("C\n");break;case8:printf("B\n");break;case9:case10:printf("A\n");break;default:printf(“E\n");}}第30頁綜合實(shí)例輸入3個(gè)邊長(zhǎng)a、b、c,判斷它們是否能組成三角形,若能組成三角形,則深入判斷此三角形是哪種類型三角形(等邊三角形、等腰三角形、直角三角形和普通三角形。等腰直角算作等腰)分析:判斷能否組成三角形:a+b>c&&a+c>b&&b+c>a判斷是否等邊三角形:a==b&&b==c判斷是否等腰三角形:a==b||b==c||c==a判斷是否直角三角形:(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)

第31頁main(){inta,b,c;printf("\nPleaseinputa,b,c:");scanf("%d%d%d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)

if(a==b&&b==c)printf("equilateraltriangle\n");elseif(a==b||b==c||c==a)printf("isocelestriangle\n");

elseif(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)printf("right-angledtriangle\n");elseprintf("arbitrarytriangle\n");elseprintf(“Itisn‘ttriangle.\n”);/*構(gòu)不成三角形*/}在組成三角形前提下四種三角形類型判斷選擇語句第32頁選擇結(jié)構(gòu)復(fù)習(xí)-讀程題#include<stdio.h>main(){inta=0,b=0,c=0,x=0;if(!a)b--;elseif(b)if(!c)x=3;elsex=4;printf(“x=%d\n”,x);}第33頁#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:

switch(y){case0:a++;break;case1:b++;break;}case2:

a++;b++;break;}printf(“a=%d,b=%d\n”,a,b);}a=2,b=1第34頁4.4循環(huán)結(jié)構(gòu)4.4.1while循環(huán)結(jié)構(gòu)4.4.2do-while循環(huán)結(jié)構(gòu)4.4.3for循環(huán)結(jié)構(gòu)4.4.4無條件控制語句break,continue,goto4.4.7多重循環(huán)4.4.8應(yīng)用舉例第35頁概述?循環(huán)結(jié)構(gòu)依據(jù)循環(huán)條件決定是否要重復(fù)執(zhí)行某一模塊(循環(huán)體)。?C語言中主要提供三種循環(huán)語句:

while語句

do-while語句

for語句第36頁4.4.1while語句?普通形式?執(zhí)行流程

while(表示式)語句也稱語句為循環(huán)體?while循環(huán)結(jié)構(gòu)是一個(gè)當(dāng)型循環(huán)結(jié)構(gòu)語句表示式0(假)非0(真)第37頁例4.8用while循環(huán)寫一個(gè)程序統(tǒng)計(jì)從鍵盤輸入數(shù)字字符出現(xiàn)次數(shù)并把其中數(shù)字字符依次輸出。#include"stdio.h"main(){/*只統(tǒng)計(jì)數(shù)字字符出現(xiàn)次數(shù)*/charc;intnd=0;while((c=getchar())!='\n'){ if(c>='0'&&c<='9') { nd++;/*統(tǒng)計(jì)*/ printf(“%c”,c);/*依次輸出*/ }}printf("\nThereare%dnumbers!\n",nd);}#include"stdio.h"main(){/*增加統(tǒng)計(jì)字母字符個(gè)數(shù)*/charc;intnd=0,nl=0;while((c=getchar())!='\n'){if(c>=‘0’&&c<=‘9’)nd++; elseif(c>=‘0’&&c<=‘9’)nl++;}printf("\nThereare%dnumbers!\n",nd);printf("\nThereare%dcharacters!\n",nl);}第38頁從鍵盤輸入n,計(jì)算累加和、階乘n!計(jì)算1+2+…+nmain(){ intn,sum=0,i=1;scanf(“%d”,&n); while(i<=n){

sum=sum+i;i++;} printf(“sum=%d”,sum);}計(jì)算n!main(){ longfa=1,i=1,n; scanf(“%ld”,&n); while(i<=n){

fa=fa*i;i++;} printf(“%ld!=%ld”,n,fa);}第39頁*例2:已知s=1!+2!+3!+……+n!,求當(dāng)s首次超出

2,000,000時(shí)n和s值main(){ intn=0; longs=0,an=1; while(s<000) {n++;an=an*n; s=s+an; }for(n=1;s<000;n++){an=an*n; s=s+an; }} printf("s=%ldn=%d\n",s,n);}運(yùn)行結(jié)果:s=4037913n=10第40頁4.4.2do-while循環(huán)語句?普通形式?執(zhí)行流程

do語句

while(表示式);?do-while循環(huán)結(jié)構(gòu)是一個(gè)直到型循環(huán)結(jié)構(gòu)表示式語句FT第41頁main(){ longnum; intn=0; printf("Pleaseinputthenumber:"); scanf("%ld",&num); printf("Inversednumberis:"); do{ printf("%d",num%10); n++; }while(num=num/10); printf("\nIthas%dbits.\n",n);}例4.9:用do-while結(jié)構(gòu)深入改寫例4.5(p102),逆序輸出一個(gè)正整數(shù)并計(jì)算它是幾位數(shù)。第42頁例:求部分和,直到余項(xiàng)首項(xiàng)值小于1.0e-4。分析:設(shè)第n項(xiàng)un=xn/n!,則第n+1項(xiàng)un+1=xn+1/(n+1)!及un+1=un(x/(n+1))main(){floatx,u=1.,s=0.; intn=0; scanf("%f",&x);do{

s+=u;u*=x/(n+1);n++;

}while(fabs(u)>=1.e-4); printf("exp(x)=%f\n",s);}第43頁4.4.3for循環(huán)語句?普通形式

for(表示式1;表示式2;表示式3)

語句(循環(huán)體)其中:

表示式1---初始化表示式??捎脕碓O(shè)定循環(huán)控制變量或循環(huán)體中變量初始值,能夠是逗號(hào)表示式。

表示式2---循環(huán)條件表示式。其值為邏輯量,為非0時(shí)繼續(xù)循環(huán),為0時(shí)循環(huán)終止

表示式3---增量表示式。用來對(duì)循環(huán)控制變量進(jìn)行修正,也可用逗號(hào)表示式包含一些原來可放在循環(huán)體中執(zhí)行其它表示式

上述表示式能夠缺省,但分號(hào)不可缺乏第44頁?執(zhí)行過程求解表示式1求解表示式3語句表示式2TF第45頁例4.11用for語句寫程序在屏幕上依次輸出26個(gè)字母,輸出形式:a->b->c->d……->y->z*例1:求s=sin1+sin2+...+sin50#include"math.h"main()/*用數(shù)學(xué)函數(shù)加上面包含文件*/{intn;floats;

for(s=0.,n=1;n<=50;n++)s+=sin(n);printf("s=%f\n",s);}s=s+sin(n)s=0,n=1n++n<=50TF第46頁例1:寫出以下程序輸出結(jié)果main(){ inti,s=0,t=0; for(i=1;i<10;i++)/*選擇結(jié)構(gòu)作循環(huán)體*/

switch(i<6) {case0:t+=i;break; case1:s+=i;break;} printf("t=%d,s=%d\n";t,s);}結(jié)果:t=30,s=15第47頁無條件控制語句4.4.4break語句4.4.5continue語句4.4.6goto語句第48頁4.4.4break語句?形式:break;?作用:跳出循環(huán)體,提前結(jié)束循環(huán),無條件轉(zhuǎn)移到循環(huán)結(jié)構(gòu)下一句繼續(xù)執(zhí)行。?使用場(chǎng)所:只能用在switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。?【例4.13】寫一個(gè)程序求整數(shù)m是否是素?cái)?shù)。一個(gè)只能被1和自己整除數(shù)稱為素?cái)?shù)。決定一個(gè)數(shù)m是否是素?cái)?shù),只要讓m被2除到被m除就能夠,假如不能被2到m中任何一個(gè)數(shù)整除,就定m為素?cái)?shù)第49頁#include"stdio.h"main(){ intm,i; scanf("%d",&m); for(i=2;i<m;i++) if(m%i==0)break; if(i==m) printf("%disaprimenumber.\n",m); else printf("%disnotaprimenumber.\n",m);}第50頁例:閱讀以下程序,寫出運(yùn)行結(jié)果main() {inti,s=0; for(i=1;i<10;i++) {s+=i*i; if(s>10)break; } printf("i=%d,s=%d\n",i,s); }結(jié)果:i=3,s=14第51頁4.4.5continue語句?形式:continue;?作用:用來結(jié)束此次循環(huán)(即跳出循環(huán)體中還未執(zhí)行語句)直接進(jìn)行循環(huán)條件判斷?使用場(chǎng)所:用于循環(huán)結(jié)構(gòu)中。?【例4.14】寫程序從鍵盤讀入分?jǐn)?shù),計(jì)算有效分?jǐn)?shù)總分、平均分、最高分、最低分。第52頁main(){ floatscore,min=100,max=0,total=0,avg; intn=0; printf("Pleaseinputfirstscore:"); while(scanf(“%f”,&score)==1)/*利用輸入函數(shù)返回值作條件*/ {

if(score<0||score>100)continue; n++; min=(score<min)?score:min; max=(score>max)?score:max; total=total+score; printf("pleaseinputnextscore:"); }; if(n>0) { avg=total/n; printf("Max:%.1f,Min:%.1f,Total:%.1f,Average:%.1f\n",max,min,total,avg); }第53頁例1:閱讀以下程序,寫出運(yùn)行結(jié)果main(){inti,s=0,n=0;for(i=1;i<10;i++){if(i%2==0||i%3==0)

continue;n++;s+=i;}printf("n=%d,s=%d\n",n,s);}結(jié)果:n=3,s=13第54頁*4.4.6goto語句?形式:goto語句標(biāo)號(hào);其中語句標(biāo)號(hào)用標(biāo)識(shí)符表示。與goto語句相對(duì)應(yīng),程序中必有一個(gè)帶語句標(biāo)號(hào)語句,形式為:

語句標(biāo)號(hào):語句?作用:程序無條件地轉(zhuǎn)移到含有該語句標(biāo)號(hào)語句上繼續(xù)執(zhí)行。?說明:goto語句不是一個(gè)必要語句;與if結(jié)構(gòu)配合組成條件轉(zhuǎn)移或循環(huán)。第55頁【例4.15】求1~100間奇數(shù)和,即求1+3+5+…+99main(){inti=1,sum=0;loop:sum=sum+i;

i=i+2;

if(i<100)gotoloop;printf("sum=%d\n",sum);}運(yùn)行結(jié)果:sum=2500for(i=1;i<100;sum+=i,i+=2);第56頁4.4.7多重(嵌套)循環(huán)在循環(huán)體內(nèi)又包含另一個(gè)或多個(gè)完整循環(huán)結(jié)構(gòu),稱為多重循環(huán)。關(guān)鍵點(diǎn):三種循環(huán)語句能夠相互改寫、相互嵌套,但不允許交叉break語句用于多重循環(huán)中,是從語句所在循環(huán)跳轉(zhuǎn)到上一層循環(huán)continue處于多重循環(huán)時(shí),僅僅影響包含它循環(huán)結(jié)構(gòu)執(zhí)行體執(zhí)行次數(shù)。第57頁三種循環(huán)結(jié)構(gòu)等價(jià)關(guān)系ints=0,i=1;while(i<=100){s=s+i;i=i+1;}ints=0,i;for(i=1;i<=100;i++)s=s+i;ints=0,i=1;do{s=s+i;i=i+1;}while(i<=100);以下三種結(jié)構(gòu)都能夠計(jì)算數(shù)學(xué)式子:1+2+3+……100第58頁例1:打印階梯狀九九乘法表#include"stdio.h"main(){ inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%-4d",i,j,i*j); printf("\n"); }}嵌套循環(huán)舉例第59頁例2:寫出以下程序輸出結(jié)果#include“stdio.h”main(){ intn,a,x;charcc='#'; scanf("%d",&n);/*n=4*/

for(x=0;x<n;x++) {for(a=n-x-1;a>0;a--) putchar(cc);

for(a=0;a<n;a++) printf("%c",97+a); printf("\n"); }}###abcd##abcd#abcdabcd第60頁4.4.8綜合應(yīng)用舉例【1】“猴子吃桃”問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了二分之一,還多吃了一個(gè)。第二天又將剩下桃子吃掉二分之一,又多吃了一個(gè)。以后天天都吃前一天剩下二分之一零一個(gè)。到第十天想吃時(shí),見只剩下一個(gè)桃子。求第一天共摘了多少個(gè)桃子。這是個(gè)“倒推”問題。設(shè):第n天桃子數(shù)為Xn,它前一天桃子數(shù)為Xn-1則:Xn=Xn-1/2-1可得到:Xn-1=2*(Xn+1)

已知:X10=1第61頁main()/*用while循環(huán)*/{inti,a;i=10;a=1;while(i>1){a=2*(a+1);i--;}printf("a=%d\n",a);}運(yùn)行結(jié)果:a=1534main()/*用for循環(huán)*/{inti,a;for(i=10,a=1;i>1;i--)a=2*(a+1);printf("a=%d\n",a);}第62頁【*2】有一頭母牛每年年初生一頭小母牛,每頭小母牛從第4個(gè)年頭起,每年年初也生一頭小母牛。求在第20年時(shí),共有多少頭牛。這是個(gè)“順推”問題。設(shè):第n年時(shí)母牛數(shù)為Yn,則:Y1=2,Y2=3,Y3=4,Y4=Y(jié)3+Y1,

Y5=Y(jié)4+Y2,……可得到,當(dāng)n≥4時(shí)有:Yn=Y(jié)n-1+Yn-3已知:Y1=2,Y2=3,Y3=4第63頁main(){inti,y1,y2,y3,y4;y1=2;y2;=3;y3=4;/*即y1=2,y2=3,y3=4*/for(i=4;i<=20;i++){y4=y3+y1;/*即yn=yn-1+yn-3

*/y1=y2;y2=y3;y3=y4;}printf("20yearsofcowtotalamountis%d\n",y4);}結(jié)果:20yearsofcowtotalamountis2745第64頁

3【例4.20】求兩整數(shù)最大條約數(shù)和最小公倍數(shù)。

求最大條約數(shù)算法:有兩整數(shù)a和b:①a%b得余數(shù)c②若c=0,則b即為兩數(shù)最大條約數(shù)③若c≠0,則a=b,b=c,再回去執(zhí)行①比如求27和15最大條約數(shù)過程為:27÷15余1215÷12余312÷3余0所以,3即為最大條約數(shù)

求最小公倍數(shù)算法:最小公倍數(shù)=兩整數(shù)乘積÷最大條約數(shù)第65頁main(){intm,n,a,b,t,c;prinf("Inputtwointegernumbers:\n");scanf("%d%d",&a,&b);m=a;n=b;

c=a%b;while(c!=0){a=b;b=c;c=a%b;}printf("Thelargestcommondivisor:%d\n",b);printf("Theleastcommonmultiple:%d\n",m*n/b);}while(b!=0){c=a%b;a=b;b=c;}b=a;第66頁4【例4.17】百錢百雞問題。公雞5文錢1只,母雞3文錢1只,小雞一文錢3只。100文錢怎樣買100只雞?分析:設(shè)買x只公雞,y只母雞,z只小雞,則有:x+y+z=100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論