程序控制結(jié)構(gòu)_第1頁
程序控制結(jié)構(gòu)_第2頁
程序控制結(jié)構(gòu)_第3頁
程序控制結(jié)構(gòu)_第4頁
程序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

會(huì)計(jì)學(xué)1程序控制結(jié)構(gòu)C程序結(jié)構(gòu)C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令全局變量聲明函數(shù)1函數(shù)n函數(shù)首部函數(shù)體局部變量聲明執(zhí)行語句第1頁/共59頁C語言語句概述語句:C語言中的語句是以“;”作為結(jié)束標(biāo)志,負(fù)責(zé)完成一定的數(shù)據(jù)操作。

1)控制語句:完成一定的控制功能

2)函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加;構(gòu)成

3)表達(dá)式語句:任何一個(gè)表達(dá)式加;構(gòu)成

4)空語句:由一個(gè)分號(hào);構(gòu)成

5)復(fù)合語句:由{}將多條語句括起來構(gòu)成第2頁/共59頁1.6數(shù)據(jù)的輸入與輸出1.6.1編譯預(yù)處理1.6.2字符數(shù)據(jù)的I/O1.6.3格式輸出函數(shù)1.6.4格式輸入函數(shù)第3頁/共59頁1.6.1編譯預(yù)處理C語言中規(guī)定:使用庫函數(shù)時(shí),應(yīng)將函數(shù)對(duì)應(yīng)的頭文件通過預(yù)處理命令包含到本程序中。文件包含預(yù)處理命令格式:

#include"頭文件名"或#include<頭文件名>對(duì)于標(biāo)準(zhǔn)輸入輸出函數(shù),對(duì)應(yīng)的頭文件為stdio.h則預(yù)處理命令為:

#include"stdio.h"或#include<stdio.h>第4頁/共59頁1.6.2字符數(shù)據(jù)的I/O1)字符輸出函數(shù):格式:putchar(字符表達(dá)式)功能:向終端(如顯示器)輸出一個(gè)字符2)字符輸入函數(shù):格式:getchar()功能:從終端(如鍵盤)輸入一個(gè)字符到計(jì)算機(jī)例:charc1,c2='a';

c1=getchar();putchar('b');putchar(c1+1);putchar(c2);putchar(67);putchar('\n');第5頁/共59頁1.6.3格式輸出函數(shù)功能:向終端輸出若干任意類型的數(shù)據(jù)格式:printf(格式控制,輸出表列)1)格式控制:雙引號(hào)括起來的字符串,包含:格式說明:由%和控制字符組成,指定數(shù)據(jù)的輸出格式普通字符:需原樣輸出的字符2)輸出表列:需要輸出的一些數(shù)據(jù)控制字符說明:d以十進(jìn)制形式輸出有符號(hào)整數(shù)s輸出字符串o以8進(jìn)制形式輸出無符號(hào)整數(shù)f以小數(shù)形式輸出單、雙精度實(shí)數(shù)X,x以16進(jìn)制形式輸出無符號(hào)整數(shù)E,e以指數(shù)形式輸出單、雙精度實(shí)數(shù)u以十進(jìn)制形式輸出無符號(hào)整數(shù)G,g以f或e格式中的較短形式輸出單、雙精度實(shí)數(shù)c輸出單個(gè)字符第6頁/共59頁整型數(shù)據(jù)輸出格式符

整型數(shù)據(jù)輸出格式符——d格式符:%d:按整型數(shù)據(jù)的實(shí)際長度輸出%ld:用于輸出長整型整數(shù)%md或%-md:數(shù)據(jù)輸出至少m位,不足m位則左或右補(bǔ)空格例:inta=123,b=12345;longd=123456;

printf("%d,%4d,%4d,%ld",a,a,b,d);其他整型數(shù)據(jù)輸出格式符——%o、%x、%u:例:unsignedinta=65535;intb=-2;

printf("\na=%d,%o,%x,%u",a,a,a,a);

printf("\nb=%d,%o,%x,%u",b,b,b,b);運(yùn)行結(jié)果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534第7頁/共59頁實(shí)型數(shù)據(jù)輸出格式符

f格式符:%f:原樣輸出整數(shù)部分,輸出6位小數(shù)%m.nf:至少輸出m位數(shù)據(jù),其中有n位小數(shù)%-m.nf:同上,數(shù)據(jù)不足m位時(shí),右補(bǔ)空格例:floatf=123.456;

printf(“%f,%10f,%10.2f,%.2f,%-10.2f”,f,f,f,f,f);e格式符:%e:小數(shù)部分6位,指數(shù)部分5位(e:1位,符號(hào):1位,指數(shù):3位)%m.ne或%-m.ne:至少輸出m位數(shù)據(jù),其中有n位小數(shù)g格式符:%g:根據(jù)待輸出數(shù)據(jù)大小,自動(dòng)選擇f或e格式符(選擇輸出寬度小的一種)來輸出實(shí)數(shù),且不輸出無意義的0第8頁/共59頁字符型數(shù)據(jù)輸出格式符

單個(gè)字符輸出格式符——c格式符:%c、%mc

一個(gè)整數(shù),其值在0~255范圍內(nèi),也可按字符形式輸出,將整數(shù)值作為ASCII碼轉(zhuǎn)換為相應(yīng)的字符;一個(gè)字符數(shù)據(jù)也可用整數(shù)形式輸出。例:charc=‘a(chǎn)’;inti=97;

printf("%c,%d",c,c);

printf("%c,%d",i,i);運(yùn)行結(jié)果:a,97a,97字符串輸出格式符%s——%ms、%-ms、%m.ns、%-m.ns例:printf("%3s,%7.2s","CHINA","CHINA");

printf("%.4s,%-5.3s","CHINA","CHINA");運(yùn)行結(jié)果:CHINA,CH,CHIN,CHI第9頁/共59頁1.6.4格式輸入函數(shù)功能:從終端輸入若干任意類型的數(shù)據(jù)格式:scanf(格式控制,地址表列)1)格式控制:雙引號(hào)括起來的字符串,包含:格式說明:由%和控制字符組成,指定數(shù)據(jù)的輸入格式普通字符:需原樣輸入的字符2)地址表列:存放輸入數(shù)據(jù)的變量地址輸入數(shù)據(jù)時(shí),數(shù)據(jù)間可以用空格、回車、Tab鍵作為間隔控制字符說明:d用以輸入有符號(hào)的十進(jìn)制整數(shù)c用以輸入單個(gè)字符o用以輸入無符號(hào)的8進(jìn)制整數(shù)s用以輸入字符串x用以輸入無符號(hào)的16進(jìn)制整數(shù)f,e用以輸入實(shí)型數(shù)據(jù)(以小數(shù)形式或指數(shù)形式)u用以輸入無符號(hào)的十進(jìn)制整數(shù)第10頁/共59頁格式輸入函數(shù)說明scanf()函數(shù)使用說明:1)地址序列應(yīng)該是接受數(shù)據(jù)的變量地址,而非變量名2)在格式控制字符串中的普通字符,在輸入時(shí)應(yīng)原樣輸入3)格式控制符中可以使用修飾符:h、l、m、*4)%c格式符要求讀入一個(gè)字符,不需用空格等字符作為間隔5)在輸入數(shù)據(jù)時(shí),數(shù)據(jù)輸入結(jié)束的依據(jù)為:空格、回車、tab出現(xiàn);按指定寬度結(jié)束;非法輸入例:inta,b,c;floatd;charc1,c2,c3;

scanf("%d%d%d%f",&a,&b,&c,&d);scanf("a=%db=%dc=%d",&a,&b,&c);scanf("%d,%d,%d,%f",&a,&b,&c,&d);scanf("%c%c%c",&c1,&c2,&c3);第11頁/共59頁3.1順序結(jié)構(gòu)程序設(shè)計(jì)

在順序結(jié)構(gòu)程序中,各語句是按照位置的先后次序順序執(zhí)行的,且每條語句都會(huì)被執(zhí)行到。數(shù)據(jù)輸入(I)數(shù)據(jù)操作(P)數(shù)據(jù)輸出(O)程序舉例:例1:輸入3個(gè)整數(shù),求其和及平均數(shù)例2:輸入?yún)?shù)A、B、C,求一元二次方程的根一個(gè)程序是對(duì)一定的數(shù)據(jù)進(jìn)行處理,一般過程為:第12頁/共59頁3.1順序結(jié)構(gòu)程序設(shè)計(jì)例3-1:輸入3個(gè)整數(shù),求其和及平均數(shù)main(){inta,b,c,sum,average;printf("|nInput3Integer:");scanf("%d%d%d",&a,&b,&c);sum=a+b+c;average=sum/3;printf("\nSum=%d,Average=%d",sum,average);}(3_11)第13頁/共59頁3.1順序結(jié)構(gòu)程序設(shè)計(jì)例3-2:輸入?yún)?shù)A、B、C,求一元二次方程的根#include“math.h”main(){floata,b,c,delta,x1,x2;printf("|n\nInputa,b,c:");scanf("%f%f%f",&a,&b,&c);delta=b*b-4*a*c;x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);printf("\nx1=%f,x2=%f",x1,x2);}(3_12)第14頁/共59頁3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.1if語句3.2.2switch語句第15頁/共59頁3.2.1if語句選擇結(jié)構(gòu)控制語句:表達(dá)式語句1語句2非00表達(dá)式語句非00形式2:

if(表達(dá)式1)語句1else語句2形式1:

if(表達(dá)式)語句第16頁/共59頁3.2.1if語句例3-3:輸入3個(gè)整數(shù),要求按由小到大的順序輸出main(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("\nTheresultis:%d%d%d",a,b,c);}輸入(I)操作(P)輸出(O)(3_21)第17頁/共59頁3.2.1if語句if語句的嵌套:在if語句中又包含一個(gè)或多個(gè)if語句注意:if與else的配對(duì)問題。if(x>0)if(y>0)z=1;elsez=0;elsez=-1;if(x>0)if(y>0)z=1;elsez=0;elsez=-1;z=-1;if(x>0)if(y>0)z=1;elsez=0;z=-1;if(x>0)if(y>0)z=1;elsez=0;第18頁/共59頁3.2.1if語句例3-4:實(shí)現(xiàn)函數(shù)-1(x<0)y=0(x=0)1(x>0)程序段1:if(x<0)y=-1;elseif(x==0)y=0;elsey=1;程序段2:

if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;程序段3:y=-1;if(x!=0)if(x>0)y=1;elsey=0;程序段4:y=0;if(x>=0)if(x>0)y=1;elsey=-1;錯(cuò)誤正確正確錯(cuò)誤第19頁/共59頁3.2.2switch語句switch

語句形式:switch(表達(dá)式){case常量表達(dá)式1:語句1case常量表達(dá)式2:語句2……case常量表達(dá)式n:語句ndefault:語句n+1}使用說明:表達(dá)式的類型常量表達(dá)式的值語句的執(zhí)行條件default的相對(duì)位置語句執(zhí)行順序break語句:break;第20頁/共59頁3.2.2switch語句思考:本程序是否能完成題目要求?例3-5:百分制成績轉(zhuǎn)換為等級(jí)成績main(){intscore,grade;scanf("%d",&score);switch(score/10){case10:case9: grade='A';case8: grade='B';case7: grade='C';case6: grade='D';default: grade='E';}printf("\nscore:%dgrade:%c",score,grade);}(3_22)第21頁/共59頁3.2.2switch語句例3-5:百分制成績轉(zhuǎn)換為等級(jí)成績main(){intscore,grade;scanf("%d",&score);switch(score/10){case10:case9: grade='A'; break;case8: grade='B'; break;case7: grade='C'; break;case6: grade='D';break;default: grade='E';}printf("\nscore:%dgrade:%c",score,grade);}(3_23)第22頁/共59頁3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.3.1循環(huán)結(jié)構(gòu)控制語句3.3.2跳轉(zhuǎn)語句3.3.3嵌套循環(huán)3.3.4程序舉例第23頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句算法的基本結(jié)構(gòu)控制:順序、選擇、循環(huán)例題:求s=1+2+3+4+5問題:C語言中當(dāng)型循環(huán)結(jié)構(gòu)如何實(shí)現(xiàn)?C語言中,當(dāng)型循環(huán)結(jié)構(gòu)的實(shí)現(xiàn):while語句格式:while(表達(dá)式)語句while語句流程圖:表達(dá)式語句0非0while語句第24頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句例:求1+2+3+4+5main(){inti=1,s=0;while(i<=5){s=s+i;i++;}printf("s=%d",s);}3_31第25頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句問題:C語言中直到型循環(huán)結(jié)構(gòu)如何實(shí)現(xiàn)?C語言中,直到型循環(huán)結(jié)構(gòu)的實(shí)現(xiàn):do-while語句格式:do語句while(表達(dá)式);

do-while語句流程圖:表達(dá)式語句非00do-while語句第26頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句例:求1+2+3+4+5main(){inti=1,s=0;do{s=s+i;i++;}while(i<=5);

printf("s=%d",s);}3_32第27頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句intk=900,s=0;while(k<100){s=k;k++;}printf("s=%d",s);分析如下兩段程序:intk=900,s=0;do{s=k;k++;}while(k<100);

printf("s=%d",s);while語句與do-while語句區(qū)別:——表達(dá)式的判斷時(shí)間第28頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句·循環(huán)的控制:

死循環(huán):循環(huán)語句無終止地循環(huán)執(zhí)行

原則:在循環(huán)語句中應(yīng)有使循環(huán)趨于結(jié)束的語句循環(huán)變量:在循環(huán)語句中控制循環(huán)的執(zhí)行

循環(huán)條件、循環(huán)變量的初值、循環(huán)變量的增量inti=1,s=0;while(i<=5){s=s+i;i++;}printf("s=%d",s);第29頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句循環(huán)結(jié)構(gòu)控制語句:

while

語句:while(表達(dá)式)語句

do-while

語句:do語句while(表達(dá)式);for

語句:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句循環(huán)語句流程圖:表達(dá)式語句0非0while語句表達(dá)式語句非00do-while語句表達(dá)式2求解表達(dá)式1非00語句求解表達(dá)式3for語句第30頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句·關(guān)于

for

語句:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量的增量)語句main(){inti,s=0;for(i=1;

i<=5;i++)s=s+i;printf("s=%d",s);}3_33第31頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句例3-6:求1+2+3+…+100inti=1,s=0;while(i<=100){s=i;i++;}printf("s=%d",s);inti=1,s=0;do{s=s+i;i++;}while(i<=100);printf("s=%d",s);inti,s=0;for(i=1;i<=100;i++)s=s+i;printf("s=%d",s);第32頁/共59頁for語句的使用舉例for語句的靈活使用:——某些表達(dá)式可以省略

inti,s=0;for(i=1;i<=100;i++)s+=i;程序段1:

inti=1,s=0;for(;i<=100;i++)s+=i;程序段2:

inti=1,s=0;for(;i<=100;)s+=i++;程序段3:

inti,s;for(s=0,i=1;i<=100;i++)s+=i;程序段4:

inti,s;for(s=0,i=1;i<=100;s+=i,i++);程序段5:

inti,s;for(s=i=0;i<=100;s+=i++);第33頁/共59頁程序舉例——題目分析例3-7:輸入一個(gè)正整數(shù),計(jì)算各位數(shù)字之和、平方和題目分析:

●輸入:正整數(shù)x●處理:求正整數(shù)x的各位數(shù)字

問題:輸入的正整數(shù)x為幾位數(shù)?——未知方法:利用求余運(yùn)算符%

循環(huán)次數(shù):未知,可對(duì)正整數(shù)x每次除10,直到x為0●輸出:運(yùn)算結(jié)果輸出數(shù)據(jù)類型正整數(shù)第34頁/共59頁程序舉例main(){intx,y,s1,s2;scanf("%d",&x);s1=0;s2=0;while(x) /*相當(dāng)于while(x!=0)*/{y=x%10;x=x/10;s1+=y;s2+=y*y;}printf("Sum1=%dSum2=%d\n",s1,s2);}例3-7:輸入一個(gè)正整數(shù),計(jì)算各位數(shù)字之和、平方和(3_34A)main(){intx,y,s1,s2;scanf("%d",&x);s1=0;s2=0;while(x){y=x%10;x=x/10;s1+=y;s2+=y*y;}printf("Sum1=%dSum2=%d\n",s1,s2);}第35頁/共59頁程序舉例main(){intx,y,s1=0,s2=0;scanf("%d",&x);do{y=x%10;x=x/10;s1+=y;s2+=y*y;}while(x);printf("Sum1=%dSum2=%d\n",s1,s2);}例3-7:輸入一個(gè)正整數(shù),計(jì)算各位數(shù)字之和、平方和(3_34B)第36頁/共59頁程序舉例main(){intx,y,s1=0,s2=0;scanf("%d",&x);for(;x;x=x/10){y=x%10; s1+=y; s2+=y*y;}printf("Sum1=%dSum2=%d\n",s1,s2);}例3-7:輸入一個(gè)正整數(shù),計(jì)算各位數(shù)字之和、平方和(3_34C)第37頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句例3-8:輸入一個(gè)正整數(shù),判斷它是否為素?cái)?shù)Begin2=>i輸入nn%i=>rr==0Endi=i+1i<=n-1YYNN輸出“n是素?cái)?shù)”輸出“n非素?cái)?shù)”第38頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句思考:1)為了提高效率,循環(huán)條件是否可以改進(jìn)?

2)若改用do-while語句實(shí)現(xiàn),如何編寫?例3-8:輸入正整數(shù),判斷是否為素?cái)?shù)(用while語句實(shí)現(xiàn))main(){intn,i,r=1;scanf("%d",&n);i=2;while(i<n&&r!=0){r=n%i;i++;}if(r!=0)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);}(3_35A)第39頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句思考:1)為了提高效率,循環(huán)條件是否可以改進(jìn)?

2)若改用for

語句實(shí)現(xiàn),如何編寫?例3-8:輸入正整數(shù),判斷是否為素?cái)?shù)(用do-while語句實(shí)現(xiàn))main(){intn,i,r=1;scanf("%d",&n);i=2;

do{r=n%i;i++;}while(i<=n/2&&r!=0);if(r!=0)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);}(3_35B)第40頁/共59頁3.3.1循環(huán)結(jié)構(gòu)控制語句例3-8:輸入正整數(shù),判斷是否為素?cái)?shù)(用for語句實(shí)現(xiàn))#include"math.h"main(){intn,i,r=1;scanf("%d",&n);for(i=2,r=n%i;i<=sqrt(n)&&r!=0;i++)r=n%i;if(r!=0)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);}(3_35C)第41頁/共59頁3.3.2跳轉(zhuǎn)語句break語句:作用:跳出循環(huán),提前結(jié)束循環(huán)語句的執(zhí)行形式:break;使用:(1)循環(huán)語句中;(2)switch語句中continue語句:作用:提前結(jié)束本次循環(huán),接著執(zhí)行下一次循環(huán)判斷形式:continue;使用:循環(huán)語句中g(shù)oto語句:作用:從當(dāng)前位置轉(zhuǎn)去執(zhí)行指定位置的語句形式:goto語句標(biāo)號(hào);使用:限制使用,最好不使用跳轉(zhuǎn)語句通常與選擇語句配合使用第42頁/共59頁3.3.2跳轉(zhuǎn)語句例3-8:輸入正整數(shù),判斷是否為素?cái)?shù)(用for語句實(shí)現(xiàn))#include"math.h"main(){intn,i,k;scanf("%d",&n);k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i<=k)printf("n=%d:No!",n);elseprintf("n=%d:Yes!",n);}(3_36.c)第43頁/共59頁3.3.3嵌套循環(huán)循環(huán)的嵌套(多重循環(huán)):在循環(huán)語句中包含循環(huán)語句例3-9:反復(fù)輸入正整數(shù),判斷是否為素?cái)?shù),直到輸入0為止思考:while語句是否可以用for語句實(shí)現(xiàn)?main(){intn,i,k;scanf("%d",&n);while(n!=0){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);scanf("%d",&n);}}main(){intn,i,k;scanf("%d",&n);while(n!=0){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);scanf("%d",&n);}}(3_37A)第44頁/共59頁3.3.3嵌套循環(huán)例3-9:反復(fù)輸入正整數(shù),判斷是否為素?cái)?shù),直到輸入0為止main(){intn,i,k;for(

;

;

){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf("n=%d:Yes!",n);elseprintf("n=%d:No!",n);}}scanf("%d",&n)n!=0scanf("%d",&n)(3_37B)第45頁/共59頁3.4程序舉例(1)例3-10:求100~200間的全部素?cái)?shù)#include"math.h"main(){intn,i,k;for(n=101;n<=200;n++){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf("%6d",n);}}(3_41)第46頁/共59頁3.4程序舉例(2)main(){intn,i,s;for(n=1;n<1000;n++){s=1;for(i=2;i<=n/2;i++)if(n%i==0)s+=i;if(n==s){printf("\n%ditsfactorsare1",n);for(i=2;i<=n/2;i++)if(n%i==0)printf(",%d",i);}}}例3-11:找出1000以內(nèi)所有的“完數(shù)”(3_42)第47頁/共59頁3.4程序舉例(3)——題目分析例3-12:用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止題目分析:

●輸入:無●處理:累加求和,求n個(gè)數(shù)據(jù)(實(shí)數(shù)類型)之和

實(shí)現(xiàn)方法:可用循環(huán)實(shí)現(xiàn),循環(huán)n次,每次加入一個(gè)數(shù)據(jù)項(xiàng)

通項(xiàng)形式:

(-1)k+1(1/(2k-1))

循環(huán)次數(shù):未知,可按所加入數(shù)據(jù)項(xiàng)的值決定循環(huán)是否執(zhí)行●輸出:運(yùn)算結(jié)果輸出數(shù)據(jù)類型float第48頁/共59頁3.4程序舉例(3)——源程序main(){floatpi=0.0,t=1.0;intn=1,k=1;while(t>1e-6){pi=pi+k*t; n=n+2;t=1.0/n; k=-k;}pi=4*pi;printf(“\npi=%10.6f”,pi);}例3-12:用π≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止(3_43)第49頁/共59頁3.4程序舉例(4)——題目分析例3-13:打印出所有的水仙花數(shù)(所謂水仙花數(shù),是指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身)題目分析:

●輸入:無●處理:逐個(gè)判斷所有3位數(shù)(即100~999)

實(shí)現(xiàn)方法:

1.可用循環(huán)實(shí)現(xiàn),逐個(gè)判斷所有3位數(shù)是否水仙花數(shù)

(每次循環(huán)判斷一個(gè)三位數(shù))2.判斷過程:關(guān)鍵是如何取得各位數(shù)字●輸出:所有水仙花數(shù)輸出數(shù)據(jù)

溫馨提示

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