課件-c語言第五講_第1頁
課件-c語言第五講_第2頁
課件-c語言第五講_第3頁
課件-c語言第五講_第4頁
課件-c語言第五講_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余21頁可下載查看

下載本文檔

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

文檔簡介

1第五講選擇結(jié)構(gòu)程序設(shè)計(jì)2一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式三、實(shí)現(xiàn)選擇結(jié)構(gòu)的控制語句四、選擇結(jié)構(gòu)程序舉例主要內(nèi)容3一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符<<=>>===!=(6種)優(yōu)先級(jí)賦值<關(guān)系(后2<前4)<算術(shù)關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子.值真(1)假(0)舉例已知:(a=3b=2c=1d=0)0a==b>cd==a>b+c15>3?算術(shù)、關(guān)系、邏輯、賦值、字符。4二、邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符!&&||運(yùn)算規(guī)則優(yōu)先次序賦值<

&&和||

<關(guān)系<算術(shù)<!(1)!:取邏輯值的相反值。(2)&&:參加運(yùn)算的兩個(gè)邏輯值都為真時(shí),結(jié)果為真(1)。(3)||:參加運(yùn)算的兩個(gè)邏輯值都為假時(shí),結(jié)果為假(0)。邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式和邏輯量連接起來的式子。舉例已知:(a=1b=0)1a||b&&0!a&&(5>3)||b05舉例5>3&&8<4-!00二、邏輯運(yùn)算符和邏輯表達(dá)式(5>3)&&(8<(4-!0))4&&5>3||21注意邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可以是0和1,也可以是0或非0的整數(shù),也可是任何類型的數(shù)據(jù)。系統(tǒng)判定標(biāo)準(zhǔn):0為假;非0為真。6三、實(shí)現(xiàn)選擇結(jié)構(gòu)的控制語句(一)、選擇結(jié)構(gòu)的三種分支(二)、單分支(三)、雙分支(四)、多分支7(一)、選擇結(jié)構(gòu)的三種分支選擇結(jié)構(gòu)單分支雙分支if(表達(dá)式)語句多分支if(表達(dá)式)語句1else語句2if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2……else語句nif語句的嵌套switch語句8格式舉例if(x>y)printf(“%d”,x);if(表達(dá)式)語句(二)、單分支intmain(){floata,b,t=0;scanf(“%f,%f”,&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f\n”,a,b);return0;}3,43.00,4.00……t=0;if(a>b)t=a;a=b;b=t;…………t=0;if(a>b)t=a;a=b;b=t;……3,44.00,0.00當(dāng)某些語句作為一個(gè)整體出現(xiàn)的時(shí)候,必須是復(fù)合語句的形式。9一般格式if(表達(dá)式)語句1;

如果表達(dá)式為真,執(zhí)行語句1;否則什么都不做.if(表達(dá)式) {

語句塊1;

}

如果表達(dá)式為真,做語句塊1的內(nèi)容;否則什么都不做;10格式舉例if(x>y)printf(“%d”,x);elseprintf(“%d”,y);(三)、雙分支voidmain(){floata,b,c,p,s;scanf(“%f,%f,%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)

{p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“s=%7.2f\n”,s);}elseprintf(“Notatriangle!\n”);}if(表達(dá)式)語句1else語句2輸入三角形的三邊,求三角形的面積。輸入a,b,c是三角形嗎?YNp(a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c))輸出s輸出“非三角形!”3,4,5s=6.003,4,8Notatriangle!11

下面我們畫出分支程序的NS流程圖,這種圖直觀清晰,一目了然。條件為真嗎?是否語句塊1語句塊212if(表達(dá)式)語句1;

else語句2; 如果表達(dá)式為真,執(zhí)行語句1;否則執(zhí)行語句2if(表達(dá)式)//如果表達(dá)式為真,執(zhí)行語句塊1 {

語句塊1;

} else//否則,執(zhí)行語句塊2 {

語句塊2;

}13條件運(yùn)算符條件表達(dá)式舉例if(a>b)max=a;elsemax=b;(三)、雙分支表達(dá)式1?表達(dá)式2:表達(dá)式3max=(a>b)?a:b;說明14格式舉例(四)、多分支(一)if(cost>3000)cash=500;elseif(cost>2000)cash=300;elseif(cost>1500)cash=200;elseif(cost>1000)cash=100;elsecash=0;if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2……else語句n151617

if(x>0){y=1;}//如果x>0,將1賦給y else{//否則

if(x==0) //如果x==0,將0賦給y {y=0;} else {y=-1;} //否則(x<0),將-1賦給y}18舉例(四)、多分支(二)已知a=3b=4c=5d=0,d=?if(a>b)

d=a;else

if(c>b)d=c;elsed=b;if(a>b)

if(c>b)d=c;elsed=b;if(a>b)

{if(c>b)d=c;}elsed=b;if(a>b)

if(c>b)d=c;elsed=b;elsed=a;d=5d=3d=0d=419開關(guān)語句舉例switch(表達(dá)式){……}(四)、多分支(三)……chargrade;scanf(“%c”,&grade)switch(grade){case‘A’:printf(“85~100\n”);break;case‘B’:printf(“70~84\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:printf(“<60\n”);break;default:printf(“error\n”);}……B70~84說明P20四、選擇結(jié)構(gòu)程序舉例例2求方程ax2+bx+c=0的解.(各種形式)真a=0真假輸出“非二次方程”b2-4ac=0真輸出兩個(gè)實(shí)根:x1,x2輸出兩個(gè)相等實(shí)根:假b2-4ac>0假計(jì)算復(fù)根的實(shí)部和虛部:實(shí)部虛部輸出兩個(gè)復(fù)根:p+qi,p-qi21#include<math.h>voidmain(){floata,b,c,disc,x1,x2,realpart,imagpart;scanf("%f,%f,%f",&a,&b,&c);printf("Theequation");if(fabs(a)<=1e-6)printf("isnotaquadratic");else

{disc=b*b-4*a*c;

if

(fabs(disc)<=1e-6)printf("hastwoequalroots:%8.4f\n",-b/(2*a));

else

if(disc>1e-6)

{x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("hasdistinctrealroots:%8.4fand%8.4f\n",x1,x2);}

else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("hascomplexroots:\n");printf("%8.4f+%8.4fi\n",realpart,imagpart);printf("%8.4f+%8.4fi\n",realpart,imagpart);

}

}}22題目:推斷誰做的好事

A、B、C、D每人說了一句話,當(dāng)四句話中有3句為真時(shí),我們要將該人判定為做好事者。

A說:不是我;B說:是C;C說:是D;D說:他胡說;23分析思路(解法不唯一):數(shù)字1表示A

數(shù)字2表示B

數(shù)字3表示C

數(shù)字4表示D

讓K表示要找的人,K從1到4,表示從A

找到D,這時(shí)

A說:不是我;可形式化為K!=1;B說:是C;可形式化為K==3;C說:是D;可形式化為K==4;D說:他胡說;可形式化為K!=4;24//***********************************//*程序名:3_6.cpp*//*作者:wuwh*//*編制時(shí)間:2001年8月*//*主要功能:誰做的好事*//**********************************************#include<stdio.h> //預(yù)編譯命令voidmain() //主函數(shù){ //主函數(shù)開始

intk=0,sum=0,g=0; //聲明變量為整數(shù)類型,且均初始化為0 for(k=1;k<=4;k=k+1) //循環(huán)從k為1到4,

{ sum=0; //循環(huán)體內(nèi)的初始化,用sum累計(jì)真話數(shù)

if(k!=1)sum=sum+1;//如A的話為真,則讓sum加1;

if(k==3)sum=sum+1;//如B的話為真,則讓sum加1;

if(k==4)sum=sum+1;//如C的話為真,則讓sum加1;

if(k!=4)sum=sum+1;//如D的話為真,則讓sum加1;

if(sum==3) //若有三句話為真,則做下列兩件事

{ printf("Thismanis%c",64+k); //輸出做好事者

g=1; //讓有解標(biāo)志置1 } } if(g!=1) //則輸出無解信息

{printf("Can’tfound!");}} //主函數(shù)結(jié)束25for(k=1;k<=4;k=k+1) { sum=0; if(k!=1)sum=sum+1;//如A的話為真,則讓sum加1;

if(k==3)sum=sum+1;//如B的話為真,則讓sum加1;

if(k==4)sum=sum+1;//如C的話為真,則讓sum加1;

if(k!=4)sum=sum+1;//如D的話為真,則讓sum加1;

...}26//***********************************//*程序名:3_7.cpp*//*作者:wuwh

溫馨提示

  • 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)論