




已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
自增、自減運(yùn)算符,自增、自減運(yùn)算符的作用是使變量的值增1或減1 自增運(yùn)算符:+ i+ 等價(jià)于 i = i + 1 或 i += 1 +i 等價(jià)于 i = i + 1 或 i += 1 自減運(yùn)算符:-,6,4,自增、自減運(yùn)算符的使用,自增、自減運(yùn)算符的使用 例如:若i的值為1 表達(dá)式“j = +i”的值是什么? 表達(dá)式“j = i+”的值是什么?,自增、自減運(yùn)算符的使用,a+ * b 得 6,3,a,自增、自減運(yùn)算符的使用 例如:int a=3,b=2,c; 執(zhí)行“c = +a * b”之后a、b、c的值? 執(zhí)行“c = a+ * b”之后a、b、c的值?,2,b,c,+a * b 得 8,自增、自減運(yùn)算符的副作用,表達(dá)式中過度使用自增、自減運(yùn)算符會帶來副作用,容易產(chǎn)生歧義 例如:若i的值為1,j的值為2,表達(dá)式“i+j”的值是什么? 例如:若i的初值為1,i+i+i+等于多少?,處理循環(huán)計(jì)算需要明確的三個(gè)問題: 循環(huán)體:哪些運(yùn)算(動作)是需要重復(fù)進(jìn)行的。 循環(huán)條件:重復(fù)這些運(yùn)算的條件是什么,即在什么情況下終止/繼續(xù)這個(gè)重復(fù)的過程。 循環(huán)準(zhǔn)備:在進(jìn)行重復(fù)的運(yùn)算處理之前,需要進(jìn)行的初始處理是什么。 剩下的問題就是選用合適的語句表達(dá)一個(gè)循環(huán)計(jì)算過程了,循環(huán)計(jì)算過程的要點(diǎn),閱讀程序,加密:將消息中每個(gè)字母變成其后的第四個(gè)字母,即A變成E,a變成e,最后的W變成A,X變成B。,#include main( ) char c; while ( (c = getchar( ) != n ) if ( (c = a ,閱讀程序1,#include #include int main( ) int i, n = 1; for( i = 1; i=20; i+ ) n = n * i; printf(“%dn”,n); system(“pause”); return 0; ,閱讀程序2,#include #include main() float a, x1, x2; printf(“input value for a:“); scanf(“%f“, ,TC2.0,百錢百雞問題,中國古代數(shù)學(xué)家張丘建在他的算經(jīng)中曾提出著名的“百錢百雞問題”,其題目如下: 雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,翁、母、雛各幾何?,百錢百雞問題,解:設(shè)i、j、k分別代表公雞、母雞、小雞的數(shù)量,根據(jù)題意列方程:,根據(jù)題意可知,i、j、k的范圍一定是0到100的正整數(shù),那么,最簡單的解題方法是:窮舉i、j、k每一種可能的取值組合,直接代入方程組,若滿足該方程組則是一組解。這樣即可得到問題的全部解。,百錢百雞問題,i 0,i 20?,買母雞和 小雞,開始,結(jié)束,i i + 1,i = 0; while (i 20 ) i+; , int i, j, k; /*i、j、k分別表示公雞、母雞和小雞的數(shù)目*/ ,j = 0; while (j 34) j+; ,k = 0; while ( k 100) if ( i + j + k = 100 ,百錢百雞問題-1,for(i = 0; i 20; i+ ) /*設(shè)定公雞的數(shù)目*/ ,int main( ) int i, j, k; /*i、j、k分別表示公雞、母雞和小雞的數(shù)目*/ return 0; ,for(j = 0; j 34; j+) /*設(shè)定母雞的數(shù)目*/ ,for(k = 0; k 100; k+) /*設(shè)定小雞的數(shù)目*/ if ( i + j + k = 100 ,百錢百雞問題(for),for(i = 0; i 20; i+ ) /*設(shè)定公雞的數(shù)目*/ ,int main( ) int i, j, k; /*i、j、k分別表示公雞、母雞和小雞的數(shù)目*/ return 0; ,for(j = 0; j 34; j+) /*設(shè)定母雞的數(shù)目*/ ,k = 100 i j ; if (i*15 + j*9 + k = 300) printf(“%d %d %dn“, i, j, k);,百錢百雞問題(for續(xù)),整數(shù)的位數(shù),給一個(gè)不多于五位數(shù)的正整數(shù),要求: 求出它是幾位數(shù) 分別打印出每一位數(shù) 按逆序打印出各位數(shù)字,整數(shù)的位數(shù)(續(xù)),用if語句求整數(shù)x的位數(shù),if ( x 9999) digits = 5; else if ( x 999 ) digits = 4; else if ( x 99 ) digits = 3; else if ( x 9 ) digits = 2; else digits = 1;,整數(shù)的位數(shù)(續(xù)),求整數(shù)x的各位數(shù)字,one = x % 10; /*求x的個(gè)位數(shù)字*/ ten = (x / 10) % 10; /*求x的十位數(shù)字*/ hund = (x / 100) % 10; /*求x的百位數(shù)字*/ thou = ( x / 1000) % 10; /*求x的千位數(shù)字*/ ten_thou = (x / 10000) % 10; /*求x的萬位數(shù)字*/,整數(shù)的位數(shù)(循環(huán)語句),用循環(huán)語句求正整數(shù)x的位數(shù),k = 0; /*k用于記錄x的位數(shù)*/ do x = x / 10; +k; while (x 0);,注意: 當(dāng)循環(huán)結(jié)束的時(shí)候,x的值等于0。,k = 1; /*k用于記錄x的位數(shù)*/ while (x 9) x = x / 10; +k; ,整數(shù)逆序輸出,逆序輸出正整數(shù)x的各位數(shù)字,k = 0; /* k用于記錄x的位數(shù)*/ do printf(“%d“, x % 10); x = x / 10; +k; while (x 0);,k = 0; /* k用于記錄x的位數(shù)*/ y = 0; /*用于保存x的逆置值*/ do y = y * 10 + x % 10; x = x / 10; +k; while (x 0); printf(“%d“,y);,另一個(gè)例子,若有下述計(jì)算關(guān)系,試編寫程序求數(shù)字A、B、C、D的值。,int A=1, B, C, D; for(B=0; B=9; B+) for(C=0; C=9; C+) for(D=0; D=9;D+) if (A*1000+B*100+C*10+D)*9 = (D*1000+C*100+B*10+A) printf(“%d%d%d%d”,A,B,C,D);,十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù),給定一個(gè)十進(jìn)制整數(shù)n,編寫程序計(jì)算其二進(jìn)制表示形式并輸出。,(43)10 ?,被除數(shù),除數(shù),商,余數(shù),43,2,21,1,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,5,2,2,1,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,5,2,2,1,2,2,1,0,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,5,2,2,1,2,2,1,0,1,2,0,1,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,5,2,2,1,2,2,1,0,1,2,0,1,0,被除數(shù),除數(shù),商,余數(shù),21,43,2,21,1,2,10,1,10,2,5,0,5,2,2,1,2,2,1,0,1,2,0,1,0,十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù),給定一個(gè)十進(jìn)制整數(shù)n,編寫程序計(jì)算其二進(jìn)制表示形式并輸出。,(43)10 (101011)2,/*十進(jìn)制數(shù)n轉(zhuǎn)換為二進(jìn)制數(shù)輸出*/ while (n != 0) printf(“%d“, n % 2); n = n / 2; ,換零錢,已知有10元、5元、2元、1元等零幣,現(xiàn)需將一張100元大鈔換零,問: 有幾種換法? 如何換?,換零錢(續(xù)),解:設(shè)i、j、k、l分別代表100元零鈔中10元、5元、2元、1元幣的數(shù)量,根據(jù)題意列方程:,根據(jù)題意可知,i、j、k、l的范圍分別為:010、020、050、0100,那么,最簡單的解題方法是:窮舉i、j、k、l每一種可能的取值組合,直接代入方程,若滿足該方程則是一個(gè)解。這樣即可得到問題的全部解。,for(i = 0; i = 10; i+ ) ,main( ) int i, j, k, l; /*i、j、k、l分別表示10元、5元、2元、1元幣的數(shù)目*/ ,for(j = 0; j = 20; j+) ,for(k = 0; k = 50; k+) ,換零錢(續(xù)),for(l = 0; l = 100; l+) if ( 10*i + 5*j +2*k + l = 100) printf(“%d %d %d %dn“,i, j, k, l); ,for(i = 0; i = 10; i+ ),main( ) int i, j, k, l; long count = 0; ,for(j = 0; j = 20; j+),for(k = 0; k = 50; k+),換零錢(續(xù)),for(l = 0; l = 100; l+) if ( 10*i + 5*j +2*k + l = 100) printf(“%d %d %d %dn“,i, j, k, l); count+; ,完數(shù),一個(gè)數(shù)如果恰好等于它的因子之和,則稱其為完數(shù)。編寫程序找出1000之內(nèi)的所有完數(shù)。例如,6是完數(shù)(6 = 1 + 2 + 3)。,對21000內(nèi)的每個(gè)整數(shù)n,找出其所有因子(不包括自身),并求其因子之和。,查找正整數(shù)n的所有因子之和,for(n = 2; n 1000; n+ ) ,/*計(jì)算正整數(shù)n的所有因子之和*/ s = 0; for(k = 1; k = n / 2 ; k+) if ( n % k = 0) s += k;,if ( s = n) printf(“%d is a perfect number.n“,n);,重新查找正整數(shù)n的所有因子,for(n = 2; n 1000; n+ ) ,s = 0; /*計(jì)算正整數(shù)n的所有因子之和*/ for(k = 1; k = n / 2 ; k+) if ( n % k = 0) s += k;,if ( s = n) printf(“%d Its factors are “,n); for(k = 1; k = n /2; k+) /*輸出n的所有因子*/ if (n % k = 0) printf(“%d,“, k); printf(“%c n“, 8); ,從鍵盤輸入一個(gè)字符序列,若其中包含有數(shù)字,則將其按照權(quán)位降低的次序轉(zhuǎn)換為數(shù)值輸出。例如,從輸入的串 dsf6%2?0d.43s 中提取出數(shù)值62043。,練習(xí)1:從字符序列中取數(shù),62043 = 6*104 + 2*103 + 0*102 + 4*101 + 3 = (0*10 + 6 )*10 + 2)*10 + 0)*10 + 4)*10 + 3,從字符序列中取數(shù),double k; char ch;,k = 0; ch = getchar(); while (ch != n) if ( ch = 0 ,從字符序列中取數(shù),double k; char ch; printf(“input characters:n“); k = 0; ch = getchar(); while (ch != n) if ( ch = 0 ,while (ch = getchar() != n) if ( ch = 0 /*end of if */ /*end of while */,練習(xí)2:求自然對數(shù)底的近似值,求自然對數(shù)底的近似值,當(dāng) 時(shí),把等號右端的和作為e的近似值,其公式為:,編制程序,利用下式計(jì)算ucosx的近似值,直到最后一項(xiàng)的絕對值小于10-6.,練習(xí)3:求余弦函數(shù),double u, x, cosx; int n; printf(“input value for x(double):“); scanf(“%lf“,cosx = 1; n = 1; u = 1; while (fabs(u)1.0e-6) u = u*x*x / (2*n*(2*n-1); u = -u; cosx = cosx + u; printf(“%5d%30.10lf%20.10lfn“,n,u,cosx); n = n + 1; printf(“n“); printf(“user:cos%.4lf=%.10lfn“, x, cosx); printf(“ sys:cos(%.4lf)=%.10lfn“, x, cos(x);,x1 = x; x = x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理培訓(xùn)課件
- 2024年延邊州縣事業(yè)單位專項(xiàng)招聘考試真題
- 過程方法培訓(xùn)課件
- 廣東2024行測真題及答案
- 2024年廣東“三支一扶”計(jì)劃招募考試真題
- 特殊兒童教育路徑-洞察及研究
- 攝影師工作流程SOP-企業(yè)管理
- 甘肅省隴南市徽縣2025屆七下英語期末復(fù)習(xí)檢測模擬試題含答案
- 企業(yè)價(jià)值觀對敬業(yè)度塑造-洞察及研究
- 2025年重慶市中考數(shù)學(xué)試題含解析
- GB/T 12149-2017工業(yè)循環(huán)冷卻水和鍋爐用水中硅的測定
- 斷絕子女關(guān)系協(xié)議書模板(5篇)
- 成都小升初數(shù)學(xué)分班考試試卷五
- Q∕SY 01007-2016 油氣田用壓力容器監(jiān)督檢查技術(shù)規(guī)范
- 水利水電 流體力學(xué) 外文文獻(xiàn) 外文翻譯 英文文獻(xiàn) 混凝土重力壩基礎(chǔ)流體力學(xué)行為分析
- 零星維修工程項(xiàng)目施工方案
- 物流公司超載超限整改報(bào)告
- 起重機(jī)安裝施工記錄表
- 江蘇省高中學(xué)生學(xué)籍卡
- 碳排放問題的研究--數(shù)學(xué)建模論文
- 贏越酒會講解示范
評論
0/150
提交評論