freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序基本結(jié)構(gòu)ppt課件-資料下載頁

2025-04-29 03:26本頁面
  

【正文】 } 2022/5/26 76 判斷 n是否素數(shù) , 補(bǔ)全程序 main() { int i, n, flag=0。 for(i=2。 ______。 i++) { if ( ________ ) flag=1。 } if ( _______ ) printf(“是素數(shù) \n”)。 } in n%i==0 flag==0 2022/5/26 77 經(jīng)典算法一(窮舉法):百雞百錢問題 一只公雞值 5元,一只母雞值 3元,三只小雞值 1元,總共有 100元錢要買一百只雞,問有多少種方案? include void main( ) { int x,y,z。 printf(*** 百雞問題 ***\n)。 for (x=1。x20。x++) for (y=1。y33。y++) for (z=3。z100。z+=3) if (5*x+3*y+z/3==100 amp。amp。 x+y+z==100) printf(cock:%d,hen:%d,chicken:%d\n,x,y,z)。 } 2022/5/26 78 ?程序使用了三層循環(huán)來解決問題,程序結(jié)構(gòu)簡單明了。但是我們設(shè)計程序不僅要正確無誤,還要注意程序的執(zhí)行效率。 ?一般來說,在循環(huán)嵌套中,內(nèi)層循環(huán)執(zhí)行的次數(shù)等于該循環(huán)嵌套結(jié)構(gòu)中每一層循環(huán)重復(fù)次數(shù)的乘積。 例如,上面的程序中,外層每循環(huán)一次,第二層要循環(huán) 32次,而第三層要循環(huán) 32*33=1056次。這樣程序執(zhí)行下來,最內(nèi)層的 if語句要執(zhí)行19*32*33次。所以我們在編寫程序時,需要考慮盡可能的減少循環(huán)執(zhí)行的次數(shù),特別是循環(huán)的嵌套。 2022/5/26 79 對于“百雞問題”,由方程組: x+y+z=100,5x+3y+z/3=100可以導(dǎo)出: x=4z/3100 y=100xz 這樣就只有 z一個未知數(shù),如果知道了 z就可以求出 x值,進(jìn)而求出 y值。因此我們只要將 z作為循環(huán)變量就可以了。 2022/5/26 80 include void main() { int x,y,z。 printf(“*** 百雞問題 ***\n”)。 for (z=3。z100。z+=3) { x=4*z/3100。 y=100xz。 if (5*x+3*y+z/3==100 amp。amp。 x+y+z==100) printf(cock:%d,hen:%d,chicken:%d\n,x,y,z)。 } } 盡管每次循環(huán)執(zhí)行的語句增多了,但是循環(huán)次數(shù)只有 33次,運行效率大大提高。 2022/5/26 81 ?從上面的分析可以看到,一個好的算法可以提高程序的執(zhí)行效率,但是要設(shè)計出一個好的算法卻要花費很大的精力,且有時提高效率的同時可能會降低程序的可讀性。如上例就是如此。 ?如何掌握好程序的易讀性和程序的效率之間的關(guān)系,因需要不同重點也就不同。如在處理實時問題時,效率應(yīng)該優(yōu)先;而程序量不大,計算機(jī)速度又非??斓那闆r下,效率就不是很重要。 2022/5/26 82 猴子第一天摘了若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個。第二天又將剩下的桃子吃了一半,又多吃了一個。以后每天都吃掉前一天剩下的一半零一個。到第十天想吃時,只剩下一個桃子了。問第一天共摘了多少桃子? 分析:設(shè)循環(huán)變量 day, day從 9 循環(huán)到 1, 設(shè) x1為前一天桃子數(shù),設(shè) x2為第二天桃子數(shù), 則 x2=x1/21, 所以 x1=(x2+1)*2 每次循環(huán): x1=(x2+1)*2 ; x2=x1 經(jīng)典算法二(逆推法):猴子吃桃問題 2022/5/26 83 猴子吃桃程序 int day,x2,x1。 x2=1。 for(day=9。day=1。day) { x1=(x2+1)*2。 x2=x1。 } printf(peach are %d\n,x1)。 2022/5/26 84 指針程序設(shè)計 指針 的含義:變量的地址 指針變量就是一類存取其他變量或函數(shù)的地址的變量。 說明 : ( 1)系統(tǒng)為每個變量分配一個確定、唯一的地址。 ( 2)存取變量的值時,有兩種方式: 1) 直接訪問 :通過變量名; 2) 間接訪問 :通過變量的地址。 ( 3)變量的地址就是其所占內(nèi)存空間的首地址。 變量名稱 內(nèi)存地址 變量的值 c h a r c 0 0 1 2 F F7 C 1 0 1 0 1 1 1 1 0 0 1 2 F F7 B 1 1 0 1 0 1 0 1 0 0 1 2 F F7 A 0 1 0 1 0 1 0 1 0 0 1 2 F F7 9 1 1 1 0 0 1 1 0 in t i 0 0 1 2 F F7 8 0 1 0 0 1 0 0 1 變量、內(nèi)存地址、變量值的關(guān)系 2022/5/26 85 指針變量 的定義: 基類型 *指針變量名 [=初始值 ]。 變量名前的 *表示該變量是一個指針變量,以示與普通變量的區(qū)別。 可以是 C語言中的任何一種數(shù)據(jù)類型,是指針變量所指向的對象的類型。 初始值可以省略 例如: int i=65535, *pi=amp。i。 //定義指針變量的同時賦初值 char c=?z?,*pc; pc=amp。c。 //先定義變量,再賦初值 指針變量、變量、變量地址和變量的值的關(guān)系 見下圖 2022/5/26 86 01111000 11111111 00010010 00000000 . . . 01111100 11111111 00010010 00000000 . . . 11111111 11111111 00000000 00000000 01111010 變量的值 0012FF67 0012FF68 0012FF69 0012FF6A . . . 0012FF70 0012FF71 0012FF72 0012FF73 . . . 0012FF78 0012FF79 0012FF7A 0012FF7B 0012FF7C 內(nèi)存地址 指針變量 pi 指針變量 pc 整型變量 i 字符變量 c 變量名稱 指針變量、變量、變量地址和變量的值的關(guān)系示意圖 122 ?z? 65535 2022/5/26 87 指針變量的使用 指針變量的賦值 ( 1)通過地址運算 ( amp。) 賦值 例如: float f, *p。 p=amp。f。 ( 2)通過指針變量的初始化賦值 例如: float f, *p=amp。f。 ( 3)通過其他指針變量賦值 例如: int i, *p1=amp。i, *p2。 p2=p1。 ( 4)用 NULL給指針變量賦空值 例如: int *p。 p=NULL。 單目運算符 兩個指針變量的類型必須相同 NULL是符號常量,和整數(shù) 0對應(yīng)。 相當(dāng)于: p=0?;騪=?\0?。 2022/5/26 88 除了上述 4種情況外,指針變量還可以指向數(shù)組、字符串、結(jié)構(gòu)體、函數(shù)、文件及調(diào)用標(biāo)準(zhǔn)函數(shù)( malloc、 calloc)等。 2022/5/26 89 指針運算符( *) 通過指針變量可以間接地存取變量的數(shù)據(jù)。 例如: 已知有定義: int x, *p。 p=amp。x。 則 x=6。和 *p=6。等價 scanf(“%d”,amp。x)。 和 scanf(“%d”,p)。等價 2022/5/26 90 例 由鍵盤輸入一個正整數(shù),求出其最高位數(shù)字。請用指針完成本題 include void main() { int i,*p。 p=amp。i。 //指針變量指向變量 i printf(請輸入一個正整數(shù): )。 scanf(%d, p)。 //本語句等價于 scanf(%d, amp。i)。 while (*p=10) *p= *p/10。 //求出該正整數(shù)的最高位數(shù)字 printf(最高位數(shù)字是: %d\n, *p)。 } 2022/5/26 91 例 輸入兩個數(shù),并按從大到小輸出。請用指針完成本題。 include void main(void) { int x,y,t。 int *p,*q。 p = amp。x。 //指針變量 p,指向整型變量 x q = amp。y。 //指針變量 q,指向整型變量 y scanf(“%d,%d”,p,q)。//與 scanf(“%d,%d”,amp。x,amp。y)等價 if(*p*q) //相當(dāng)于 if(xy) { t = *p。 //相當(dāng)于 t=x *p = *q。 //相當(dāng)于 x=y *q = t。 //相當(dāng)于 y=t } printf(\nx=%d y=%d,x,y )。 /*也可用 printf(\nx=%d y=%d,*p,*q )。輸出 */ } 2022/5/26 92 include void main(void) { int x,y。 int *p,*q,*t。 p = amp。x。 //指針變量 p,指向整型變量 x q = amp。y。 //指針變量 q,指向整型變量 y scanf(“%d,%d”,p,q)。//與 scanf(“%d,%d”,amp。x,amp。y)等價 if(*p*q) {/*以下語句僅僅是指針指向交換, x和 y的值并沒有交換 */ t = p。 //指針指向交換 p = q。 q = t。 } printf(\nx=%d y=%d,*p,*q )。 /*不能用 printf(\nx=%d y=%d,x,y)。輸出 */ } 2022/5/26 93 題目: 從鍵盤輸入若干學(xué)生的成績,直到輸入 1為止,求其中的最高分并輸出。要求用指針變量實現(xiàn)對變量的訪問。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1