版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章數(shù)據(jù)類型與表達(dá)式【項(xiàng)目3】判斷三角形的類型
用C語(yǔ)言編寫一個(gè)程序,由鍵盤輸入三個(gè)整數(shù)作為三角形的三條邊,判斷是否能構(gòu)成一個(gè)三角形,若能組成三角形,判斷是等邊三角形、等腰三角形還是其它三角形。【學(xué)習(xí)重難點(diǎn)】
(1)選擇結(jié)構(gòu)編程思想
(2)if語(yǔ)句使用
(3)switch語(yǔ)句的使用【知識(shí)框架圖】
【知識(shí)儲(chǔ)備】(1)掌握順序結(jié)構(gòu)程序設(shè)計(jì)
(2)C語(yǔ)言程序編輯、調(diào)試過程
(3)掌握C語(yǔ)言程序的書寫規(guī)則
(4)掌握常用數(shù)據(jù)類型、運(yùn)算符、表達(dá)式和函數(shù)的使用第3章選擇結(jié)構(gòu)程序設(shè)計(jì)本章的主要知識(shí)點(diǎn)如下:1、選擇結(jié)構(gòu)編程思想2、if語(yǔ)句的三種基本結(jié)構(gòu)3、if語(yǔ)句的嵌套4、switch語(yǔ)句的使用(1)又稱為分支結(jié)構(gòu),根據(jù)條件來判斷哪些語(yǔ)句被執(zhí)行。(2)先計(jì)算條件表達(dá)式的值。如果為真,則執(zhí)行程序段A,如果為假,則執(zhí)行程序段B。A程序段和B程序段是有選擇的進(jìn)行執(zhí)行,不可能兩個(gè)模塊都執(zhí)行。(3)只有一個(gè)入口(a點(diǎn))和一個(gè)出口(b點(diǎn))。(4)主要用于解決不同條件選擇不同操作的多分支類的問題。第3章選擇結(jié)構(gòu)程序設(shè)計(jì)AB
p成立不成立3.1if語(yǔ)句(1)if語(yǔ)句功能:
可以實(shí)現(xiàn)選擇結(jié)構(gòu),根據(jù)給定的條件進(jìn)行判斷,以決定是否執(zhí)行某個(gè)分支程序段。(2)if語(yǔ)句三種基本形式:
單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)、多分支選擇結(jié)構(gòu)3.1if語(yǔ)句---3.1.1單分支選擇結(jié)構(gòu)(1)一般格式:if(表達(dá)式)語(yǔ)句(2)格式說明:①只有一個(gè)分支,根據(jù)給定的表達(dá)式來判斷是否要執(zhí)行語(yǔ)句部分。②執(zhí)行過程:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式為真時(shí)執(zhí)行語(yǔ)句部分,否則不執(zhí)行語(yǔ)句部分,直接執(zhí)行if語(yǔ)句的下一條語(yǔ)句。
例如:if(score<60)printf(“成績(jī)不合格”);③if是C語(yǔ)言的關(guān)鍵字,表示if語(yǔ)句的開始,可理解為“如果”。④小括號(hào)中的表達(dá)式是判斷條件,可以是邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是任意的數(shù)值類型(非0為真,0為假)。
例如,“if(2)printf(“true”);”⑤語(yǔ)句部分可以是單條語(yǔ)句,也可以是復(fù)合語(yǔ)句。復(fù)合語(yǔ)句:當(dāng)包含多條語(yǔ)句時(shí)必須要用“{}”括起來組成復(fù)合語(yǔ)句,復(fù)合語(yǔ)句內(nèi)的所有語(yǔ)句是一個(gè)整體,如果執(zhí)行就全部執(zhí)行,否則就全部不執(zhí)行。
例如,if(a>b){temp=a;a=b;b=temp;}。注意:小括號(hào)不能省略且后面不加分號(hào)。3.1if語(yǔ)句---3.1.1單分支選擇結(jié)構(gòu)
注意:復(fù)合語(yǔ)句的“}”外不需要加分號(hào)。/*li3_1_1從鍵盤任意輸入一個(gè)整數(shù),輸出該數(shù)的絕對(duì)值*/#include<stdio.h>intmain(void){ intx; printf("輸入一個(gè)整數(shù):"); scanf("%d",&x); if(x<0)x=-x; printf("絕對(duì)值為:%d\n",x); return0;}3.1if語(yǔ)句---3.1.1單分支選擇結(jié)構(gòu)將程序運(yùn)行了3次,每次輸入不同的整數(shù),結(jié)果分別如下:輸入一個(gè)整數(shù):-1絕對(duì)值為:1輸入一個(gè)整數(shù):0絕對(duì)值為:0輸入一個(gè)整數(shù):1絕對(duì)值為:1/*li3_1_2改寫2.5.5節(jié)程序:從鍵盤任意輸入三個(gè)整數(shù),輸出其中的最大數(shù)*/#include<stdio.h>intmain(void){ inta,b,c,max; printf("輸入三個(gè)整數(shù),用空格分隔:"); scanf("%d%d%d",&a,&b,&c); max=a; if(max<b) max=b; if(max<c) max=c;
printf("最大值為:%d\n",max); return0;}3.1if語(yǔ)句---3.1.1單分支選擇結(jié)構(gòu)程序運(yùn)行結(jié)果為:輸入三個(gè)整數(shù),用空格分隔:163最大值為:63.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)(1)一般格式:if(表達(dá)式)
語(yǔ)句1;else語(yǔ)句2;(2)格式說明:①根據(jù)給定的條件來判斷要執(zhí)行兩個(gè)分支中的哪個(gè)語(yǔ)句塊。②執(zhí)行過程:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式為真時(shí)執(zhí)行語(yǔ)句1部分,如果為假則執(zhí)行語(yǔ)句2部分。語(yǔ)句1和2只能執(zhí)行其中一個(gè)。if(score<60)printf(“成績(jī)不合格”);elseprintf(“成績(jī)合格”);3.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)③if和else都是c語(yǔ)言的關(guān)鍵字,可理解為“如果…否則…”。else后沒有小括號(hào)和條件,默認(rèn)為與if小括號(hào)中條件相反的所有條件。else不能單獨(dú)使用,必須與if一起構(gòu)成if…else結(jié)構(gòu)。④書寫程序時(shí)if和else成對(duì)出現(xiàn),關(guān)系平行,所以對(duì)齊。兩條printf語(yǔ)句右縮進(jìn)。if(score<60)printf(“成績(jī)不合格”);elseprintf(“成績(jī)合格”);3.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)/*li3_1_3改寫li2_4_4:輸入年份,判斷是否是閏年。*/#include<stdio.h>intmain(void){ intyear;printf("輸入年份:"); scanf("%d",&year); if(((year%4==0)&&(year%100!=0))||(year%400==0)) printf("Yes\n"); else printf("No\n"); return0;}程序運(yùn)行結(jié)果為:輸入年份:2012Yes3.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)/*li3_1_4,改寫程序li2_4_8:輸入2個(gè)字符,若是小寫字母則轉(zhuǎn)換為大寫字母輸出,否則照原樣輸出。*/#include<stdio.h>intmain(void){
charch1,ch2;
printf("輸入2個(gè)字符:");
scanf("%c%c",&ch1,&ch2);
if(ch1>='a'&&ch1<='z')
printf("%c",ch1-32);
else
printf("%c\n",ch1);程序運(yùn)行結(jié)果為:輸入2個(gè)字符:c!C!
if(ch2>='a'&&ch2<='z')
printf("%c\n",ch2-32);
else
printf("%c\n",ch2);
return0;}3.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)/*li3_1_5輸入一個(gè)整數(shù),判斷該數(shù)是奇數(shù)還是偶數(shù),如果是奇數(shù)就輸出odd,偶數(shù)就輸出even*/#include<stdio.h>intmain(void){ intx; printf("輸入一個(gè)整數(shù):"); scanf("%d",&x); if(x%2==0) printf("even\n"); else printf("odd\n"); return0;}程序運(yùn)行結(jié)果為:輸入一個(gè)整數(shù):8even3.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)/*li3_1_6某公園門票的票價(jià)是每人50元,一次購(gòu)票滿30張,每張可少收2元。輸入一個(gè)正整數(shù)表示購(gòu)票的數(shù)量。輸出一個(gè)實(shí)數(shù)表示用戶實(shí)際需要支付的金額,保留兩位小數(shù)*/#include<stdio.h>intmain(void){ intn;
doublemoney; printf("輸入購(gòu)票數(shù)量:"); scanf("%d",&n); if(n>=30) money=n*48.0; else money=n*50.0; printf("%.2f\n",money); return0;}程序運(yùn)行結(jié)果為:輸入購(gòu)票數(shù)量:301440.003.1if語(yǔ)句---3.1.2雙分支選擇結(jié)構(gòu)/*li3_1_7輸入一個(gè)三位正整數(shù),判斷其是否是水仙花數(shù),如果是則輸出yes,否則輸出no。水仙花數(shù)是指一個(gè)三位數(shù),它的各位數(shù)字的立方和等于其本身,如153=13+53+33*/#include<stdio.h>intmain(void){intnum,b,s,g;printf(“輸入一個(gè)三位正整數(shù):”);scanf("%d",&num);b=num/100;g=num%10;s=(num-100*b)/10;if(b*b*b+s*s*s+g*g*g==num)
printf("yes\n");
else
printf("no\n");
return0;}程序運(yùn)行結(jié)果為:153Yes3.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)(1)功能:根據(jù)給定的條件判斷要執(zhí)行下面多個(gè)分支中的哪一個(gè)分支語(yǔ)句。(2)實(shí)現(xiàn)語(yǔ)句形式:if-elseif語(yǔ)句、嵌套的if…else語(yǔ)句、switch語(yǔ)句。3.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句3.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句/*li3_1_9字符類型判斷:輸入一個(gè)字符,如果該字符是大寫字母,則輸出upper;若是小寫字母,則輸出low;若是數(shù)字字符,則輸出digit;若是其它字符,則輸出other。*/#include<stdio.h>intmain(void){ charch; scanf("%c",&ch); if((ch>='a')&&(ch<='z')) printf("lower\n"); else if((ch>='A')&&(ch<='Z')) printf("upper\n"); elseif((ch>='0')&&(ch<='9')) printf("digit\n"); else printf("other\n"); return0;}將程序運(yùn)行了4次,結(jié)果分別如下:alowerZupper0digit!other3.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句/*li3_1_10分段函數(shù)求值:任意輸入一個(gè)整數(shù)x,輸出y的值。*/#include<stdio.h>#include<math.h>intmain(void){ intx,y; printf(“輸入一個(gè)整數(shù):”); scanf("%d",&x);
if(x<-2)y=7-2*x;elseif(x>=-2&&x<3) y=5-abs(3*x+2);else y=3*x+4;printf("%d\n",y);return0; }將程序運(yùn)行了3次,結(jié)果分別如下:輸入一個(gè)整數(shù):-21輸入一個(gè)整數(shù):-313輸入一個(gè)整數(shù):3133.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句/*li3_1_11計(jì)算員工薪水。公司規(guī)定,銷售人員工資由基本工資和銷售提成兩部分組成,其中基本工資是1500元/月,銷售提成規(guī)則如下:銷售額小于等于10000時(shí),安照5%提成;大于10000但小于等于50000時(shí),超出10000部分按照3%提成;大于50000時(shí),超出50000部分按照2%提成。輸入一個(gè)整數(shù)x表示銷售額,輸出員工薪水,保留2位小數(shù)。*/#include<stdio.h>#include<math.h>intmain(void){intx;doublesalary;salary=1500;scanf("%d",&x);if(x<=10000)salary=salary+x*0.05;elseif((x>10000)&&(x<=50000))salary=salary+10000*0.05+(x-10000)*0.03;elsesalary=salary+10000*0.05+40000*0.03+(x-50000)*0.02;printf("%.2f",salary); return0;}將程序運(yùn)行了3次,每次輸入不同的數(shù),以測(cè)試每條if語(yǔ)句,結(jié)果分別如下:100002000.00600003400.00500003200.003.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句3.1if語(yǔ)句---3.1.3多分支選擇結(jié)構(gòu)---ifelseif語(yǔ)句/*li3_1_8改寫li3_1_2節(jié)程序:從鍵盤任意輸入三個(gè)整數(shù),輸出其中的最大數(shù)。*/#include<stdio.h>intmain(void){inta,b,c,max;printf("輸入三個(gè)整數(shù),用空格分隔:");scanf("%d%d%d",&a,&b,&c);
if(a>=b)max=a;elseif(b>=c) max=b;else max=c;printf("最大數(shù)為:%d\n",max); return0;}將程序運(yùn)行了3次,結(jié)果分別如下:輸入三個(gè)整數(shù),用空格分隔:13-1最大數(shù)為:3輸入三個(gè)整數(shù),用空格分隔:1-1-2最大數(shù)為:1輸入三個(gè)整數(shù),用空格分隔:123最大數(shù)為:33.1if語(yǔ)句---3.1.4if語(yǔ)句的嵌套(1)定義:當(dāng)if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。(2)一般形式:if(表達(dá)式1)if(表達(dá)式2)
語(yǔ)句1;else
語(yǔ)句2;elseif(表達(dá)式3)
語(yǔ)句3;else
語(yǔ)句4;注:內(nèi)嵌的if語(yǔ)句既可以出現(xiàn)在if后的語(yǔ)句部分,也可以出現(xiàn)在else后的語(yǔ)句部分,既可以單分支的,也可以是雙分支的或者多分支的。配對(duì)原則是:else總是與它上面的最近的未配對(duì)的if配對(duì)。3.1if語(yǔ)句---3.1.4if語(yǔ)句的嵌套if(表達(dá)式1)if(表達(dá)式2)
語(yǔ)句1;else
語(yǔ)句2;if(表達(dá)式1){if(表達(dá)式2)
語(yǔ)句1;}else語(yǔ)句2;可以使用花括號(hào)改變if與else的配對(duì)關(guān)系及增加程序的可讀性從鍵盤任意輸入三個(gè)整數(shù),輸出其中的最大數(shù)(改li3_1_8)/*li3_1_12分段函數(shù)求值:任意輸入一個(gè)整數(shù)x,輸出y的值。*/3.1if語(yǔ)句---3.1.4if語(yǔ)句的嵌套#include<stdio.h>intmain(void){ intx,y; printf("輸入一個(gè)整數(shù):"); scanf("%d",&x);
if(x>=0)
if(x==0) y=0;
else
y=1;
else
y=-1; printf("x=%d,y=%d\n",x,y);}將程序運(yùn)行了3次,結(jié)果分別如下:輸入一個(gè)整數(shù):0x=0,y=0輸入一個(gè)整數(shù):1x=1,y=1輸入一個(gè)整數(shù):-1x=-1,y=-1/*li3_1_13由鍵盤輸入三個(gè)整數(shù)作為三角形的三條邊,判斷是否能構(gòu)成一個(gè)三角形,若能組成三角形,判斷是等邊三角形、等腰三角形還是其它三角形*/。3.1if語(yǔ)句---3.1.4if語(yǔ)句的嵌套#include<stdio.h>intmain(void){inta,b,c;printf("輸入三個(gè)正整數(shù),用空格分隔:");scanf("%d%d%d",&a,&b,&c);
3.1if語(yǔ)句---3.1.4if語(yǔ)句的嵌套if(a+b>c&&a+c>b&&b+c>a){if(a==b&&b==c) printf("能構(gòu)成一個(gè)等邊三角形\n");elseif(a==b||b==c||c==a) printf("能構(gòu)成一個(gè)等腰三角形\n");elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf("能構(gòu)成一個(gè)直角三角形\n");elseprintf("能構(gòu)成一個(gè)一般三角形\n");}elseprintf("不能構(gòu)成一個(gè)三角形\n");return0;
}輸入三個(gè)正整數(shù),用空格分隔:345能構(gòu)成一個(gè)直角三角形3.1if語(yǔ)句最常用的3種if語(yǔ)句形式:1.if(表達(dá)式)語(yǔ)句1(沒有else子句)2.if(表達(dá)式)語(yǔ)句1else語(yǔ)句2(有else子句)3.if(表達(dá)式1)
語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3
┆elseif(表達(dá)式m)語(yǔ)句melse語(yǔ)句m+1(在else部分又嵌套了多層的if語(yǔ)句)3.1if語(yǔ)句說明:整個(gè)if語(yǔ)句可寫在多行上,也可寫在一行上但都是一個(gè)整體,屬于同一個(gè)語(yǔ)句if(x>0)y=1;elsey=-1;if(x>0)y=1;elsey=-1;if(x>0)y=1;elsey=-1;
條件
y=1
y=-1YN3.2switch語(yǔ)句(1)功能:實(shí)現(xiàn)多分支選擇結(jié)構(gòu)(2)舉例1:學(xué)生成績(jī)等級(jí)分類等級(jí)A:90分以上;B:80≤score<90;C:70≤score<80,D:60≤score<70;E:score<60。舉例2:設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器該計(jì)算器能實(shí)現(xiàn)加、減、乘、除、乘方等功能。(3)優(yōu)點(diǎn):上例也可以用嵌套的if語(yǔ)句來實(shí)現(xiàn),但由于分支較多,所以嵌套的if語(yǔ)句層數(shù)多,程序長(zhǎng),可讀性差,容易出錯(cuò),使用switch語(yǔ)句則相對(duì)清晰簡(jiǎn)單。3.2switch語(yǔ)句格式說明:①執(zhí)行過程:首先計(jì)算switch后圓括號(hào)內(nèi)的表達(dá)式的值,然后用該值逐個(gè)與case后的常量表達(dá)式進(jìn)行比較。當(dāng)找到相匹配的值時(shí),就執(zhí)行其后的語(yǔ)句。如果所有case后面的常量表達(dá)式的值都不匹配時(shí),則執(zhí)行default后的語(yǔ)句。switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}3.2switch語(yǔ)句格式說明:②switch、case、break和default都是關(guān)鍵字。switch的語(yǔ)句體必須用{}括起來。表達(dá)式的值可以是整型、字符型或枚舉型數(shù)據(jù),要用小括號(hào)括起來且后面沒有分號(hào)。switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}3.2switch語(yǔ)句格式說明:③case與常量表達(dá)式之間必須用空格隔開。每個(gè)case后面常量表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象,即對(duì)于表達(dá)式的同一個(gè)值,卻有兩種或多種不同的處理語(yǔ)句。switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}3.2switch語(yǔ)句格式說明:④break語(yǔ)句是可選項(xiàng)。如果沒有break語(yǔ)句,程序?qū)⒔又鴪?zhí)行case后面語(yǔ)句,如果有break語(yǔ)句,則不再執(zhí)行后面的case里的語(yǔ)句,而是立即跳出switch語(yǔ)句,去執(zhí)行switch的后續(xù)語(yǔ)句?!癱ase常量表達(dá)式”只是起語(yǔ)句標(biāo)號(hào)作用。switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}3.2switch語(yǔ)句switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}格式說明:⑤當(dāng)case后包含多個(gè)語(yǔ)句時(shí),可以不用花括號(hào)括起來,系統(tǒng)會(huì)自動(dòng)識(shí)別并順序執(zhí)行所有語(yǔ)句。3.2switch語(yǔ)句格式說明:⑥當(dāng)有break語(yǔ)句時(shí),各個(gè)case的出現(xiàn)的次序不影響執(zhí)行結(jié)果,可以交換順序。多個(gè)case可以共用一組執(zhí)行語(yǔ)句。例:
case10: case9:printf("A");break;switch語(yǔ)句格式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]
……case常量表達(dá)式n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}3.2switch語(yǔ)句/*li3_2_1五級(jí)制成績(jī):輸入一個(gè)百分制成績(jī)score(0~100的整數(shù)),輸出對(duì)應(yīng)的等級(jí)。轉(zhuǎn)換關(guān)系:等級(jí)A:90分以上;B:80≤score<90;C:70≤score<80,D:60≤score<70;E:score<60*/#include<stdio.h>intmain(void){
intscore,i;
printf("輸入成績(jī)0~100的整數(shù):");
scanf("%d",&score);
i=score/10;
switch(i) {
case10:
case9:printf("A\n");break;
case8:printf("B\n");break;
輸入成績(jī)0~100的整數(shù):80B
case7:printf("C\n");break;
case6:printf("D\n");break;
default:printf("E\n");
}
return0;}3.2switch語(yǔ)句/*li3_2_2輸入一個(gè)年份和月份,輸出該月的天數(shù)*/#include<stdio.h>intmain(void){intyear,month;printf("輸入年和月用空格分隔:");scanf("%d%d",&year,&month);switch(month){ case2:if(year%400==0||(year%4==0&&year%100!=0)) printf("29天\n"); else printf("28天\n");break;輸入年和月用空格分隔:2012229天輸入年和月用空格分隔:2013228天輸入年和月用空格分隔:2012430天輸入年和月用空格分隔:2012331天case4:case6:case9:case11:printf("30天\n");break;default:printf("31天\n");break;}return0;} /*li3_2_3輸入一個(gè)簡(jiǎn)單的四則運(yùn)算表達(dá)式,包含兩個(gè)實(shí)數(shù)和一個(gè)運(yùn)算符,如s1ops2,其中s1和s2是兩個(gè)實(shí)數(shù),op表示運(yùn)算符+、-、*、/,也可能是其它字符。如果運(yùn)算符合法,輸出表達(dá)式的值,保留兩位小數(shù),如果運(yùn)算符不合法或進(jìn)行除法運(yùn)算時(shí)除數(shù)是0,則輸出wrong。*/#include<stdio.h>#include<math.h>intmain(void){doubles1,s2,result;charop;intflag=1;printf(“輸入一個(gè)四則運(yùn)算表達(dá)式:”);scanf("%lf%c%lf",&s1,&op,&s2);3.2switch語(yǔ)句輸入一個(gè)四則運(yùn)算表達(dá)式:2*36.00輸入一個(gè)四則運(yùn)算表達(dá)式:10/33.33輸入一個(gè)四則運(yùn)算表達(dá)式:10+-37.00輸入一個(gè)四則運(yùn)算表達(dá)式:10/0Wronginput!輸入一個(gè)四則運(yùn)算表達(dá)式:3@2Wronginput!3.2switch語(yǔ)句switch(op){ case'+':result=s1+s2;break; case'-':result=s1-s2;break; case'*':result=s1*s2;break; case'/':
if(fabs(s2)>1e-10)
result=s1/s2;
else
flag=0;
break; default:flag=0;}if(flag) printf("%.2lf\n",result);else printf("Wronginput!\n");return0;}選擇結(jié)構(gòu)程序綜合舉例
例
求
方程的解。解題思路:處理以下各情況①
a=0,不是二次方程②
,有兩個(gè)相等實(shí)根
③
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)銷售代理與房產(chǎn)中介公司合作合同3篇
- 二零二五年度建筑公司內(nèi)部設(shè)施維護(hù)承包合同3篇
- 2025版文化旅游項(xiàng)目分包合同2篇
- 2025版家庭保姆服務(wù)合同補(bǔ)充協(xié)議3篇
- 二零二五年度房地產(chǎn)企業(yè)合同管理財(cái)務(wù)預(yù)算調(diào)整與執(zhí)行合同3篇
- 二零二五年度體育行業(yè)Excel合同管理臺(tái)賬模板3篇
- 二零二五年度個(gè)人信用良好信用卡透支借款合同3篇
- 二零二五年度文化展品搬運(yùn)保護(hù)協(xié)議2篇
- 二零二五年度建筑行業(yè)材料搬運(yùn)工用工規(guī)范合同2篇
- 二零二五年度家庭養(yǎng)老照護(hù)床位服務(wù)與老年大學(xué)課程合作合同3篇
- 2024年水生產(chǎn)處理工(初級(jí))職業(yè)技能鑒定考試題庫(kù)(含答案)
- DL∕T 2447-2021 水電站防水淹廠房安全檢查技術(shù)規(guī)程
- 勞動(dòng)合同變更確認(rèn)書
- AQ 1097-2014 井工煤礦安全設(shè)施設(shè)計(jì)編制導(dǎo)則(正式版)
- (高清版)JTGT D31-06-2017 季節(jié)性凍土地區(qū)公路設(shè)計(jì)與施工技術(shù)規(guī)范
- 二年級(jí)乘除法口算題計(jì)算練習(xí)大全2000題(可直接打印)
- 2024陜西省渭南市鎮(zhèn)事業(yè)單位招聘175人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- DB29-238-2024 城市綜合管廊工程設(shè)計(jì)規(guī)范
- 宋代茶文化課件
- GB/T 43836-2024企業(yè)科技創(chuàng)新系統(tǒng)能力水平評(píng)價(jià)規(guī)范
- 高考英語(yǔ)必背688個(gè)高頻詞匯
評(píng)論
0/150
提交評(píng)論