版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2){x=2*x+5;
printf("%lf\n",y);}if(x>=2&&x<3){x=x*sin(x)-1;printf("%lf\n",y);}if(x>=3&&x<4){x=sqrt(1+x*x);printf("%lf\n",y);}if(x>=4&&x<5){x=x*x-2*x+5;printf("%lf\n",y);}return0;}練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2){x=2*x+5;}if(x>=2&&x<3){x=x*sin(x)-1;}if(x>=3&&x<4)x=sqrt(1+x*x);if(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}功能相同效率不同練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x<1||x>5)return0;
if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}有何不同練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include主要內(nèi)容多分支選擇結(jié)構(gòu)switch語(yǔ)句循環(huán)結(jié)構(gòu)while語(yǔ)句主要內(nèi)容多分支選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)根據(jù)同一個(gè)表達(dá)式的各種取值分情況處理表達(dá)式e?語(yǔ)句序列1值1語(yǔ)句序列2值2語(yǔ)句序列n+1其他值語(yǔ)句序列n值n...多分支的選擇結(jié)構(gòu)根據(jù)同一個(gè)表達(dá)式的各種取值分情況處理表達(dá)式eswitch語(yǔ)句switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),其基本形式為:switch(表達(dá)式e){
case常量表達(dá)式1:語(yǔ)句序列1;break;
case常量表達(dá)式2:語(yǔ)句序列2;break;......
case常量表達(dá)式n:語(yǔ)句序列n;break;
default:語(yǔ)句序列n+1;}switch語(yǔ)句的含義是:若表達(dá)式e的值等于某個(gè)常量表達(dá)式i的值,則執(zhí)行相應(yīng)的語(yǔ)句序列i;否則,執(zhí)行default的語(yǔ)句序列。什么是常量表達(dá)式?switch語(yǔ)句switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),其switch語(yǔ)句的使用舉例問題:輸入一個(gè)百分制的成績(jī),將其轉(zhuǎn)換為等級(jí)分制輸出。規(guī)則如下:90~100:A80~89:B70~79:C60~69:D低于60:Fswitch語(yǔ)句的使用舉例問題:輸入一個(gè)百分制的成績(jī),將其轉(zhuǎn)成績(jī)轉(zhuǎn)換1(用if語(yǔ)句)#include<stdio.h>main(){intscore;
printf("inputascore(0~100):");scanf("%d",&score);if(score>=90){printf("grade=A\n");}elseif(score>=80){printf("grade=B\n");}elseif(score>=70){printf("grade=C\n");}elseif(score>=60){printf("grade=D\n");}else{printf("grade=F\n");}}成績(jī)轉(zhuǎn)換1(用if語(yǔ)句)#include<stdio.h>成績(jī)轉(zhuǎn)換2#include<stdio.h>main(){intscore;/*score用于表示百分制分?jǐn)?shù)*/
printf("inputscore(0~100):");scanf("%d",&score);switch(score/10){case10:printf("grade=A\n");break;case9:printf("grade=A\n");break;
case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;
case5:printf("grade=F\n");break;case4:printf("grade=F\n");break;case3:printf("grade=F\n");break;case2:printf("grade=F\n");break;case1:printf("grade=F\n");break;case0:printf("grade=F\n");break;}}沒有這些break,該程序的執(zhí)行結(jié)果是什么?成績(jī)轉(zhuǎn)換2#include<stdio.h>沒有這些bre缺少break的switch語(yǔ)句示例switch(n)
{case1:printf("grade=A\n");case2:printf("grade=B\n");case3:printf("grade=C\n");case4:printf("grade=D\n");case5:printf("grade=F\n");
}
n==1?YesNo輸出grade=A輸出grade=Bn==2?YesNo輸出grade=C輸出grade=D輸出grade=Fn==3?YesNon==4?YesNon==5?YesNo缺少break的switch語(yǔ)句示例switch(n)成績(jī)轉(zhuǎn)換3#include<stdio.h>main(){intscore,grade;printf("inputascore(0~100):");scanf("%d",&score);grade=score/10;switch(grade){case10:case9:printf("grade=A\n");break;case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;成績(jī)轉(zhuǎn)換3#include<stdio.h>成績(jī)轉(zhuǎn)換3(續(xù))case6:printf("grade=D\n");break;
case5:case4:case3:case2:case1:case0:printf("grade=F\n");break;default:printf("Invalidinput!\n");}}成績(jī)轉(zhuǎn)換3(續(xù))case6:pr成績(jī)轉(zhuǎn)換4(if和switch結(jié)合使用)#include<stdio.h>main(){intscore,n;
printf("inputascore(0~100):");scanf("%d",&score);if(score>=90)n=1;elseif(score>=80)n=2;elseif(score>=70)n=3;elseif(score>=60)n=4;elsen=5;switch(n)
{case1:printf("grade=A\n");break;case2:printf("grade=B\n");break;case3:printf("grade=C\n");break;case4:printf("grade=D\n");break;case5:printf("grade=F\n");break;
}/*endofswitch*/}/*endofmain*/
成績(jī)轉(zhuǎn)換4(if和switch結(jié)合使用)#include<成績(jī)轉(zhuǎn)換5(if和switch結(jié)合使用)#include<stdio.h>main(){intscore,n;
printf("inputascore(0~100):");scanf("%d",&score);if(score<60)n=0;elsen=(score–60)/10+1;
switch(n)
{
case5:case4:
printf("grade=A\n");break;case3:printf("grade=B\n");break;case2:printf("grade=C\n");break;case1:printf("grade=D\n");break;
case0:
printf("grade=F\n);
break;
}/*endofswitch*/}/*endofmain*/
至此,我們已經(jīng)了解了if語(yǔ)句和switch語(yǔ)句的含義和用法,那么,程序中使用if語(yǔ)句的地方能否用switch語(yǔ)句替換呢?成績(jī)轉(zhuǎn)換5(if和switch結(jié)合使用)#include<switch中的break語(yǔ)句break語(yǔ)句的目的終止switch語(yǔ)句的執(zhí)行如果沒有break語(yǔ)句,則程序會(huì)從指定的case分支開始,并在該分支結(jié)束后繼續(xù)執(zhí)行下去除非switch語(yǔ)句結(jié)束,后面的其他case分支或default分支中的語(yǔ)句都會(huì)得到執(zhí)行原因:case子句中的常數(shù)表達(dá)式僅起到語(yǔ)句標(biāo)號(hào)的作用,不是分支之間的分隔標(biāo)記省略break語(yǔ)句的場(chǎng)合允許多個(gè)分支執(zhí)行同樣的代碼switch中的break語(yǔ)句break語(yǔ)句的目的switch中的break示例編寫程序,接受用戶輸入的年份和月份,輸出該月天數(shù)#include<stdio.h>#include"zylib.h"intmain(){intyear,month,days_of_month; BOOLleapyear=FALSE;
/*輸入部分*/printf("Theprogramgetsayearandamonth,andprintsdaysofthemonth.\n");printf("Theyear:"); year=GetIntegerFromKeyboard();printf("Themonth:"); month=GetIntegerFromKeyboard();if(month<1||month>12){ printf("Montherror!\n"); return1; }
/*計(jì)算部分*/leapyear=year%4==0&&year%100!=0||year%400==0;
switch(month){case1:case3:case5:case7:case8:case10:case12:days_of_month=31;break;case4:case6:case9:case11:days_of_month=30;break;case2:days_of_month=28+(int)leapyear;break;}
/*輸出部分*/printf("Daysin%4d-%2.2dis%d.\n",year,month,days_of_month);return0;}switch中的break示例編寫程序,接受用戶輸入的年份while((c=getchar())!=EOF)switch(c){case'':nb++;break;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':case'0':nd++;break;case'\n':nl++;break;case'{':case'}':nc++;break;default:nn++;break;}switch中的break示例while((c=getchar())!=EOF)Switch舉例6#include<stdio.h>voidmain(){inta=1,b=6,c=4,d=2;switch(a++){case1:c++;d++;case2:switch(++b) {case7:c++; case8:d++;}case3:c++;d++; break;case4:c++; d++;}printf("%d,%d\n",c,d);}Switch舉例6#include<stdio.h>switch語(yǔ)句小結(jié)switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),可以用if語(yǔ)句等價(jià)地表示switch(表達(dá)式e){
case常量表達(dá)式1:語(yǔ)句序列1;break;
case常量表達(dá)式2:語(yǔ)句序列2;break;......
case常量表達(dá)式n:語(yǔ)句序列n;break;
default:語(yǔ)句序列n+1;}可以將各種情況進(jìn)行歸納后再用switch語(yǔ)句表示,例如
grade=score/10;break語(yǔ)句在switch語(yǔ)句中有很重要的作用switch語(yǔ)句小結(jié)switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu)選擇結(jié)構(gòu)程序設(shè)計(jì)小結(jié)掌握并熟練應(yīng)用if語(yǔ)句和switch語(yǔ)句pAB成立不成立ab選擇結(jié)構(gòu)1pA成立不成立ab選擇結(jié)構(gòu)2表達(dá)式e?語(yǔ)句序列1值1語(yǔ)句序列2值2語(yǔ)句序列n+1其他值語(yǔ)句序列n值n...選擇結(jié)構(gòu)程序設(shè)計(jì)小結(jié)掌握并熟練應(yīng)用if語(yǔ)句和switch語(yǔ)句C的循環(huán)語(yǔ)句C語(yǔ)言提供了描述循環(huán)計(jì)算的語(yǔ)句:
while語(yǔ)句
do...while語(yǔ)句
for語(yǔ)句學(xué)習(xí)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)就是掌握以上語(yǔ)句的使用方法C的循環(huán)語(yǔ)句C語(yǔ)言提供了描述循環(huán)計(jì)算的語(yǔ)句:學(xué)習(xí)循環(huán)結(jié)構(gòu)程序while語(yǔ)句while語(yǔ)句while語(yǔ)句的格式和含義while語(yǔ)句的格式:while(表達(dá)式p)
循環(huán)體語(yǔ)句ApA真
假循環(huán)結(jié)構(gòu)while語(yǔ)句的含義:1)
計(jì)算表達(dá)式p;2)
若表達(dá)式的值為“假”,則結(jié)束while語(yǔ)句的執(zhí)行;否則,執(zhí)行循環(huán)體語(yǔ)句A,然后轉(zhuǎn)1);while語(yǔ)句的格式和含義while語(yǔ)句的格式:whilewhile語(yǔ)句使用舉例1#include<stdio.h>intmain(){
inti,s;i=1;s=0;
while(i<=100){s+=i;i++;}printf("%d\n",s);return0;}BYNI←1S←0I<=100?S←S+I輸出S的值開始結(jié)束I←I+1ACwhile語(yǔ)句使用舉例1#include<stdio.h>求最大公約數(shù)和最小公倍數(shù)
voidmain(){ inta,b,s1,s2;//s1:最大公約數(shù)s2:最小公倍數(shù) inti,j,min,max; printf("請(qǐng)輸入兩個(gè)整數(shù):\n"); scanf("%d%d",&a,&b); min=a<b?a:b; max=a>b?a:b; s1=s2=0; for(i=1;i<=min;i++){
if(min%i==0&&max%i==0) s1=i; else continue; } for(j=a*b;j>=max;j--){
if(j%max==0&&j%min==0) s2=j; else continue; } printf("%d與%d的最大公約數(shù)為:%d\t最小公倍數(shù)為:%d\n",a,b,s1,s2);}求最大公約數(shù)和最小公倍數(shù)
voidmain(){ABCD求最大公約數(shù)流程圖(歐氏算法)YNr不等于0?輸出n的值輸入正整數(shù)m和n開始結(jié)束m←n;n←rr←m%nABCDr←m%nABCD求最大公約數(shù)流程圖(歐氏算法)YNr不等于0?輸出n求最大公約數(shù)程序#include<stdio.h>intmain(){
return0;}YNr不等于0?輸出n的值輸入正整數(shù)m和n開始結(jié)束m←n;n←rr←m%nr←m%nwhile(r!=0){m=n;n=r;r=m%n;}printf("inputtwointegers:");scanf("%d%d",&m,&n);r=m%n;intm,n,r;printf("\ngcd=%d\n",n);求最大公約數(shù)程序#include<stdio.h>YNr分析問題,在求解過(guò)程中:存在一個(gè)(些)運(yùn)算(動(dòng)作)需要重復(fù)進(jìn)行(循環(huán))若干次。重復(fù)的次數(shù)是事先確定的,或者是根據(jù)條件確定的。處理循環(huán)計(jì)算需要明確的三個(gè)問題:循環(huán)體:哪些運(yùn)算(動(dòng)作)是需要重復(fù)進(jìn)行的;循環(huán)條件:重復(fù)這些運(yùn)算的條件是什么,即在什么情況下終止/繼續(xù)這個(gè)重復(fù)的過(guò)程。循環(huán)準(zhǔn)備:在進(jìn)行重復(fù)的運(yùn)算處理之前,需要進(jìn)行的準(zhǔn)備工作是什么;循環(huán)結(jié)構(gòu)程序的編寫要點(diǎn)分析問題,在求解過(guò)程中:循環(huán)結(jié)構(gòu)程序的編寫要點(diǎn)程序設(shè)計(jì)練習(xí)一球從100m高度自由落下,每次落地后反跳回原來(lái)高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈的高度是多少?程序設(shè)計(jì)練習(xí)一球從100m高度自由落下,每次落地后反跳回原來(lái)落地-反彈一球從100m高度自由落下,每次落地后反跳回原來(lái)高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈的高度是多少?100m50m25m12.5m設(shè):i:落地次數(shù)計(jì)數(shù)h:每次落地時(shí)的高度sum:落地和反彈所經(jīng)過(guò)的總長(zhǎng)度h1h2h3h4落地-反彈一球從100m高度自由落下,每次落地后反跳回原來(lái)高落地-反彈(續(xù)1)#include<stdio.h>main(){
sum-=h;printf("h=%lf,sum=%lf\n",h,sum);}TC2.0循環(huán)體中必須包含能改變循環(huán)條件的語(yǔ)句,使得重復(fù)計(jì)算過(guò)程能夠結(jié)束sum+=h;
/*將本次落下的高度h累加到距離的總長(zhǎng)度中*/h=h/2;
/*反彈*/sum=sum+h;
/*將反彈的高度h累加到距離的總長(zhǎng)度中*/i=i+1;
doubleh=100,sum=0;inti;i=1;/*落地次數(shù)*/while(i<=10){
}落地-反彈(續(xù)1)#include<stdio.h>TC2反彈-落地100m50m25m12.5m設(shè):i:落地次數(shù)計(jì)數(shù)h:每次落地時(shí)的高度sum:落地和反彈所經(jīng)過(guò)的總長(zhǎng)度h1h2h3h4反彈-落地100m50m25m12.5m設(shè):h1h2h3h4反彈-落地(續(xù)2)#include<stdio.h>main(){
h=h/2;printf("h=%lf,sum=%lf\n",h,sum);}doubleh=100,sum=100;inti;i=1;/*反彈和落地次數(shù)*/
h=h/2;
/*反彈至前次落地高度的一半*/sum=sum+h*2;
/*完成前次落地后的總距離+(前次落地后的反彈+本次落地)距離*/i=i+1;while(i<=9){
}
反彈-落地(續(xù)2)#include<stdio.h>dou練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2){x=2*x+5;
printf("%lf\n",y);}if(x>=2&&x<3){x=x*sin(x)-1;printf("%lf\n",y);}if(x>=3&&x<4){x=sqrt(1+x*x);printf("%lf\n",y);}if(x>=4&&x<5){x=x*x-2*x+5;printf("%lf\n",y);}return0;}練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2){x=2*x+5;}if(x>=2&&x<3){x=x*sin(x)-1;}if(x>=3&&x<4)x=sqrt(1+x*x);if(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}功能相同效率不同練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x<1||x>5)return0;
if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}#include<stdio.h>#include<math.h>intmain(){doublex,y;//floatx,y;scanf("%lf",&x);if(x>=1&&x<2)x=2*x+5;elseif(x>=2&&x<3)x=x*sin(x)-1;elseif(x>=3&&x<4)x=sqrt(1+x*x);elseif(x>=4&&x<5)x=x*x-2*x+5;
printf("%lf\n",y);return0;}有何不同練習(xí)編寫程序,輸入x的值,按下式計(jì)算y的值。#include主要內(nèi)容多分支選擇結(jié)構(gòu)switch語(yǔ)句循環(huán)結(jié)構(gòu)while語(yǔ)句主要內(nèi)容多分支選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)多分支的選擇結(jié)構(gòu)根據(jù)同一個(gè)表達(dá)式的各種取值分情況處理表達(dá)式e?語(yǔ)句序列1值1語(yǔ)句序列2值2語(yǔ)句序列n+1其他值語(yǔ)句序列n值n...多分支的選擇結(jié)構(gòu)根據(jù)同一個(gè)表達(dá)式的各種取值分情況處理表達(dá)式eswitch語(yǔ)句switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),其基本形式為:switch(表達(dá)式e){
case常量表達(dá)式1:語(yǔ)句序列1;break;
case常量表達(dá)式2:語(yǔ)句序列2;break;......
case常量表達(dá)式n:語(yǔ)句序列n;break;
default:語(yǔ)句序列n+1;}switch語(yǔ)句的含義是:若表達(dá)式e的值等于某個(gè)常量表達(dá)式i的值,則執(zhí)行相應(yīng)的語(yǔ)句序列i;否則,執(zhí)行default的語(yǔ)句序列。什么是常量表達(dá)式?switch語(yǔ)句switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),其switch語(yǔ)句的使用舉例問題:輸入一個(gè)百分制的成績(jī),將其轉(zhuǎn)換為等級(jí)分制輸出。規(guī)則如下:90~100:A80~89:B70~79:C60~69:D低于60:Fswitch語(yǔ)句的使用舉例問題:輸入一個(gè)百分制的成績(jī),將其轉(zhuǎn)成績(jī)轉(zhuǎn)換1(用if語(yǔ)句)#include<stdio.h>main(){intscore;
printf("inputascore(0~100):");scanf("%d",&score);if(score>=90){printf("grade=A\n");}elseif(score>=80){printf("grade=B\n");}elseif(score>=70){printf("grade=C\n");}elseif(score>=60){printf("grade=D\n");}else{printf("grade=F\n");}}成績(jī)轉(zhuǎn)換1(用if語(yǔ)句)#include<stdio.h>成績(jī)轉(zhuǎn)換2#include<stdio.h>main(){intscore;/*score用于表示百分制分?jǐn)?shù)*/
printf("inputscore(0~100):");scanf("%d",&score);switch(score/10){case10:printf("grade=A\n");break;case9:printf("grade=A\n");break;
case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;
case5:printf("grade=F\n");break;case4:printf("grade=F\n");break;case3:printf("grade=F\n");break;case2:printf("grade=F\n");break;case1:printf("grade=F\n");break;case0:printf("grade=F\n");break;}}沒有這些break,該程序的執(zhí)行結(jié)果是什么?成績(jī)轉(zhuǎn)換2#include<stdio.h>沒有這些bre缺少break的switch語(yǔ)句示例switch(n)
{case1:printf("grade=A\n");case2:printf("grade=B\n");case3:printf("grade=C\n");case4:printf("grade=D\n");case5:printf("grade=F\n");
}
n==1?YesNo輸出grade=A輸出grade=Bn==2?YesNo輸出grade=C輸出grade=D輸出grade=Fn==3?YesNon==4?YesNon==5?YesNo缺少break的switch語(yǔ)句示例switch(n)成績(jī)轉(zhuǎn)換3#include<stdio.h>main(){intscore,grade;printf("inputascore(0~100):");scanf("%d",&score);grade=score/10;switch(grade){case10:case9:printf("grade=A\n");break;case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;成績(jī)轉(zhuǎn)換3#include<stdio.h>成績(jī)轉(zhuǎn)換3(續(xù))case6:printf("grade=D\n");break;
case5:case4:case3:case2:case1:case0:printf("grade=F\n");break;default:printf("Invalidinput!\n");}}成績(jī)轉(zhuǎn)換3(續(xù))case6:pr成績(jī)轉(zhuǎn)換4(if和switch結(jié)合使用)#include<stdio.h>main(){intscore,n;
printf("inputascore(0~100):");scanf("%d",&score);if(score>=90)n=1;elseif(score>=80)n=2;elseif(score>=70)n=3;elseif(score>=60)n=4;elsen=5;switch(n)
{case1:printf("grade=A\n");break;case2:printf("grade=B\n");break;case3:printf("grade=C\n");break;case4:printf("grade=D\n");break;case5:printf("grade=F\n");break;
}/*endofswitch*/}/*endofmain*/
成績(jī)轉(zhuǎn)換4(if和switch結(jié)合使用)#include<成績(jī)轉(zhuǎn)換5(if和switch結(jié)合使用)#include<stdio.h>main(){intscore,n;
printf("inputascore(0~100):");scanf("%d",&score);if(score<60)n=0;elsen=(score–60)/10+1;
switch(n)
{
case5:case4:
printf("grade=A\n");break;case3:printf("grade=B\n");break;case2:printf("grade=C\n");break;case1:printf("grade=D\n");break;
case0:
printf("grade=F\n);
break;
}/*endofswitch*/}/*endofmain*/
至此,我們已經(jīng)了解了if語(yǔ)句和switch語(yǔ)句的含義和用法,那么,程序中使用if語(yǔ)句的地方能否用switch語(yǔ)句替換呢?成績(jī)轉(zhuǎn)換5(if和switch結(jié)合使用)#include<switch中的break語(yǔ)句break語(yǔ)句的目的終止switch語(yǔ)句的執(zhí)行如果沒有break語(yǔ)句,則程序會(huì)從指定的case分支開始,并在該分支結(jié)束后繼續(xù)執(zhí)行下去除非switch語(yǔ)句結(jié)束,后面的其他case分支或default分支中的語(yǔ)句都會(huì)得到執(zhí)行原因:case子句中的常數(shù)表達(dá)式僅起到語(yǔ)句標(biāo)號(hào)的作用,不是分支之間的分隔標(biāo)記省略break語(yǔ)句的場(chǎng)合允許多個(gè)分支執(zhí)行同樣的代碼switch中的break語(yǔ)句break語(yǔ)句的目的switch中的break示例編寫程序,接受用戶輸入的年份和月份,輸出該月天數(shù)#include<stdio.h>#include"zylib.h"intmain(){intyear,month,days_of_month; BOOLleapyear=FALSE;
/*輸入部分*/printf("Theprogramgetsayearandamonth,andprintsdaysofthemonth.\n");printf("Theyear:"); year=GetIntegerFromKeyboard();printf("Themonth:"); month=GetIntegerFromKeyboard();if(month<1||month>12){ printf("Montherror!\n"); return1; }
/*計(jì)算部分*/leapyear=year%4==0&&year%100!=0||year%400==0;
switch(month){case1:case3:case5:case7:case8:case10:case12:days_of_month=31;break;case4:case6:case9:case11:days_of_month=30;break;case2:days_of_month=28+(int)leapyear;break;}
/*輸出部分*/printf("Daysin%4d-%2.2dis%d.\n",year,month,days_of_month);return0;}switch中的break示例編寫程序,接受用戶輸入的年份while((c=getchar())!=EOF)switch(c){case'':nb++;break;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':case'0':nd++;break;case'\n':nl++;break;case'{':case'}':nc++;break;default:nn++;break;}switch中的break示例while((c=getchar())!=EOF)Switch舉例6#include<stdio.h>voidmain(){inta=1,b=6,c=4,d=2;switch(a++){case1:c++;d++;case2:switch(++b) {case7:c++; case8:d++;}case3:c++;d++; break;case4:c++; d++;}printf("%d,%d\n",c,d);}Switch舉例6#include<stdio.h>switch語(yǔ)句小結(jié)switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu),可以用if語(yǔ)句等價(jià)地表示switch(表達(dá)式e){
case常量表達(dá)式1:語(yǔ)句序列1;break;
case常量表達(dá)式2:語(yǔ)句序列2;break;......
case常量表達(dá)式n:語(yǔ)句序列n;break;
default:語(yǔ)句序列n+1;}可以將各種情況進(jìn)行歸納后再用switch語(yǔ)句表示,例如
grade=score/10;break語(yǔ)句在switch語(yǔ)句中有很重要的作用switch語(yǔ)句小結(jié)switch語(yǔ)句用于表示多分支的選擇結(jié)構(gòu)選擇結(jié)構(gòu)程序設(shè)計(jì)小結(jié)掌握并熟練應(yīng)用if語(yǔ)句和switch語(yǔ)句pAB成立不成立ab選擇結(jié)構(gòu)1pA成立不成立ab選擇結(jié)構(gòu)2表達(dá)式e?語(yǔ)句序列1值1語(yǔ)句序列2值2語(yǔ)句序列n+1其他值語(yǔ)句序列n值n...選擇結(jié)構(gòu)程序設(shè)計(jì)小結(jié)掌握并熟練應(yīng)用if語(yǔ)句和switch語(yǔ)句C的循環(huán)語(yǔ)句C語(yǔ)言提供了描述循環(huán)計(jì)算的語(yǔ)句:
while語(yǔ)句
do...while語(yǔ)句
for語(yǔ)句學(xué)習(xí)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)就是掌握以上語(yǔ)句的使用方法C的循環(huán)語(yǔ)句C語(yǔ)言提供了描述循環(huán)計(jì)算的語(yǔ)句:學(xué)習(xí)循環(huán)結(jié)構(gòu)程序while語(yǔ)句while語(yǔ)句while語(yǔ)句的格式和含義while語(yǔ)句的格式:while(表達(dá)式p)
循環(huán)體語(yǔ)句ApA真
假循環(huán)結(jié)構(gòu)while語(yǔ)句的含義:1)
計(jì)算表達(dá)式p;2)
若表達(dá)式的值為“假”,則結(jié)束while語(yǔ)句的執(zhí)行;否則,執(zhí)行循環(huán)體語(yǔ)句A,然后轉(zhuǎn)1);while語(yǔ)句的格式和含義while語(yǔ)句的格式:whilewhile語(yǔ)句使用舉例1#include<stdio.h>intmain(){
inti,s;i=1;s=0;
while(i<=100){
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年學(xué)校校長(zhǎng)公開選拔筆試試題及答案
- 2026福建省煙草專賣局招聘(第二批)127人備考考試題庫(kù)附答案解析
- 2026年甘肅酒泉敦煌市人民法院招聘司法警察備考考試試題附答案解析
- 輔警招聘考試300題及答案
- 2025臨床藥物治療學(xué)題庫(kù)及答案
- 2025年知識(shí)競(jìng)賽題庫(kù)及答案填空
- 信訪安全生產(chǎn)報(bào)告制度
- 企業(yè)市場(chǎng)拓展與合作伙伴管理手冊(cè)
- 學(xué)校安全生產(chǎn)巡查在制度
- 生產(chǎn)與安全事故報(bào)告制度
- 配電網(wǎng)工程施工方案模板
- 港口集裝箱運(yùn)輸AGV項(xiàng)目規(guī)劃設(shè)計(jì)方案
- YY/T 1919-2023超聲造影成像性能試驗(yàn)方法
- 國(guó)際私法(魯東大學(xué))智慧樹知到課后章節(jié)答案2023年下魯東大學(xué)
- 政府采購(gòu)評(píng)審專家考試試題庫(kù)-多選及答案(252題)
- 中介服務(wù)協(xié)議書
- XX服裝店股份眾籌合伙人制度方案
- 老年人評(píng)估量表
- 人教PEP版小學(xué)《英語(yǔ)》三年級(jí)上冊(cè)Unit6HappyBirthday!PartB教學(xué)設(shè)計(jì)
- GB/T 3532-2022日用瓷器
- GB/T 22879-2008紙和紙板CIE白度的測(cè)定,C/2°(室內(nèi)照明條件)
評(píng)論
0/150
提交評(píng)論