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

正文內(nèi)容

c程序設(shè)計(jì)實(shí)用教程ppt-資料下載頁(yè)

2025-01-04 08:50本頁(yè)面
  

【正文】 { sum+=n。 n++。 } 即條件永遠(yuǎn)為真(可將 1改為任何非零值)。那么,如何終止無(wú)限循環(huán)呢?(下節(jié)談)當(dāng)程序運(yùn)行時(shí)遇到了死循環(huán) , 可按 Ctrl+Break鍵終止 。 例 從鍵盤輸入一個(gè)自然數(shù) , 判斷其是否為質(zhì)數(shù) 。 方法 1 使用 質(zhì)數(shù) 定義 。 main() { unsigned m, i, flag=1。 /*flag值為 1表示自然數(shù)是質(zhì)數(shù) */ scanf(%u, amp。m)。 for(i=2。 i=m1。 i++) if(m%i==0) flag=0。 /*flag值為 0表示自然數(shù)是合數(shù) */ if(flag) printf(%u is a prime number\n, m)。 /*條件 flag等價(jià)于 flag!=0*/ else printf(%u is a posite number\n, m)。 } 觀察下此程序的 for循環(huán)語(yǔ)句 , 不難發(fā)現(xiàn)兩個(gè)問(wèn)題: (1) 循環(huán)次數(shù)是 m2。 當(dāng) m是 101時(shí) , 則循環(huán) 99次;當(dāng) m是 100時(shí) , 則循環(huán) 98次 。 顯然 ,循環(huán)次數(shù)太多 , 程序效率低 。 如何減少循環(huán)次數(shù) ? (2) 當(dāng) m是 100時(shí) , 第一次循環(huán)就知道 100除以 2的余數(shù)是 0, 已經(jīng)斷定 100是合數(shù)了 ,可還要繼續(xù)后面的循環(huán) , 這是沒(méi)有必要的 。 那么 , 如何中途退出循環(huán) ? 即沒(méi)有執(zhí)行完循環(huán)所規(guī)定的次數(shù) , 如何提前結(jié)束循環(huán) 。 解決第一個(gè)問(wèn)題的關(guān)鍵是改進(jìn) 算法 ( 指解決問(wèn)題的方法 ) 。 至于如何終止循環(huán) , 可通過(guò)使用 break語(yǔ)句來(lái)實(shí)現(xiàn) 。 循環(huán)的終止與繼續(xù) break語(yǔ)句用來(lái)終止開(kāi)關(guān)語(yǔ)句(即 switch語(yǔ)句)的執(zhí)行。它還能終止循環(huán)語(yǔ)句的執(zhí)行,即跳出循環(huán),接著執(zhí)行該循環(huán)語(yǔ)句的后續(xù)語(yǔ)句。其一般格式如下: break。 例如 , 用 break語(yǔ)句終止上節(jié)提到的無(wú)限循環(huán): main() { int n=1,sum=0。 for( 。 。 ) { sum+=n。 n++。 if(n100) break。 } printf(Sum=%d\n,sum)。 } 對(duì)于例 , 同樣可以用 break語(yǔ)句終止 。 這是很簡(jiǎn)單的: for(i=2。 i=m1。 i++) if(m%i==0) { flag=0。 break。 } 這樣處理之后 , 就沒(méi)有必要通過(guò)標(biāo)志變量的值來(lái)判斷自然數(shù) m是質(zhì)數(shù)還是合數(shù)了 。 方法 2 改進(jìn)判斷質(zhì)數(shù)的算法 。 main() { unsigned m,i。 scanf(%u,amp。m)。 for(i=2。 i=m1。 i++) if(m%i==0) break。 if(im1) printf(%u is a prime number\n, m)。 else printf(%u is a posite number\n, m)。 } 方法 3 改進(jìn)判斷質(zhì)數(shù)的算法 。 include main() { unsigned m,i,k。 scanf(%u,amp。m)。 k=sqrt(m)。 /*求 m的平方根 */ for(i=2。 i=k。 i++) if(m%i==0) break。 if(ik) printf(%u is a prime number\n, m)。 else printf(%u is a posite number\n, m)。 } 它的一般格式如下: continue。 該語(yǔ)句的功能是結(jié)束本次循環(huán) , 即跳過(guò)循環(huán)體中它之后的語(yǔ)句 , 接著進(jìn)行下一次的循環(huán) 。 例 輸出 100以內(nèi)能被 7整除的自然數(shù) 。 方法 1 在循環(huán)體中 , 直接從能被 7整除的自然數(shù)入手 。 main() { int n。 for(n=1。 n=100。 n++) if(n%7==0) printf (%d ,n)。 printf(\n)。 } 方法 2 在循環(huán)體中 , 也可以從不能被 7整除的自然數(shù)入手 。 main() { int n。 for(n=1。 n=100。 n++) { if(n%7!=0) continue。 /*若 n不能被 7整除 , 則循環(huán)轉(zhuǎn)到增量部分 */ printf(%d ,n)。 /*執(zhí)行此語(yǔ)句 , 輸出能被 7整除的自然數(shù) */ } printf(\n)。 } 方法 3 最簡(jiǎn)單的方法 , 是從循環(huán)控制變量的初值和增量入手 。 main() { int n。 for(n=7。 n=100。 n+=7) printf (%d ,n)。 printf(\n)。 } 循環(huán)語(yǔ)句的嵌套 一個(gè)循環(huán)語(yǔ)句的循環(huán)體中允許包含另一個(gè)完整的循環(huán)語(yǔ)句 , 這叫做循環(huán)語(yǔ)句的嵌套 。 外層的循環(huán)語(yǔ)句和內(nèi)層的循環(huán)語(yǔ)句可以相同 , 也可以不同 。 就是說(shuō) , 三種循環(huán)語(yǔ)句 ( while語(yǔ)句 、 do~ while語(yǔ)句和 for語(yǔ)句 ) 可以互相嵌套 。 例 輸出 100以內(nèi)的所有質(zhì)數(shù) 。 方法 1 外層循環(huán)使用 for語(yǔ)句 。 include main() { unsigned m, i, k。 for(m=2。 m100。 m++) /*外層循環(huán) , 其循環(huán)體是: */ { k=sqrt(m)。 /*求平方根 */ for(i=2。 i=k。 i++) /*內(nèi)層循環(huán) */ if(m%i==0) break。 if(ik) printf(%u ,m)。 /*是質(zhì)數(shù)則輸出 */ } printf(\n)。 } 比較一下內(nèi) 、 外兩層循環(huán)控制變量的變化 , 顯然 外層循環(huán)控制變量變化慢 , 內(nèi)層循環(huán)控制變量變化快 。 具體說(shuō) , 對(duì)外層循環(huán)控制變量 m的每個(gè)值 , 內(nèi)層循環(huán)控制變量 i就 由 2開(kāi)始 , 依次增 1, 直到 k為止或中途退出 循環(huán) 。 方法 2 外層循環(huán)使用 while語(yǔ)句 。 include main() { unsigned m,i,k。 m=2。 /*初值 */ while(m100) /*條件 */ { k=sqrt(m)。 for(i=2。 i=k。 i++) if(m%i==0) break。 if(ik) printf(%u ,m)。 m++。 /*增量 */ } printf(\n)。 } 方法 3 外層循環(huán)使用 do~ while語(yǔ)句 。 include main() { unsigned m, i, k。 m=2。 /*初值 */ do{ k=sqrt(m)。 for(i=2。 i=k。 i++) if(m%i==0) break。 if(ik) printf(%u ,m)。 m++。 /*增量 */ }while(m100)。 /*條件 */ printf(\n)。 } 用 goto語(yǔ)句構(gòu)造循環(huán) goto語(yǔ)句是無(wú)條件轉(zhuǎn)向語(yǔ)句 , 它的一般形式為: goto 標(biāo)號(hào); 這個(gè)語(yǔ)句的 作用是使程序轉(zhuǎn)到標(biāo)號(hào)處去執(zhí)行 。 標(biāo)號(hào)命名規(guī)則同變量名 ,它用在某語(yǔ)句之前 , 其名后要加冒號(hào) , 它指出 goto語(yǔ)句的轉(zhuǎn)向目標(biāo) 。 可以使用goto語(yǔ)句和 if語(yǔ)句來(lái)構(gòu)造循環(huán) 。 這樣 , 可給出例 4種方法 。 方法 4 使用 if語(yǔ)句和 goto語(yǔ)句構(gòu)造循環(huán) 。 main() { int n,sum。 n=1。 sum=0。 /*變量置初值 */ loop: if(n=100) { sum+=n++。 /*求和后 n增 1*/ goto loop。 /*轉(zhuǎn)到標(biāo)號(hào) loop處去執(zhí)行 */ } printf(Sum=%d\n, sum)。 } 例 根據(jù)下面的兩位正整數(shù)乘法算式求解 。 m n n m 2 7 0 1 顯然 , m與 n不可能為 0。 由于兩個(gè)乘數(shù)的十位數(shù)字與個(gè)位數(shù)字對(duì)稱相等 , 可知得到該算式的解后就應(yīng)該立即退出循環(huán) 。 方法 1 使用 goto語(yǔ)句可從多重循環(huán)的最內(nèi)層直接跳出最外層循環(huán) , 這恰是與 break語(yǔ)句的根本區(qū)別所在 。 main() { int m,n。 for(m=1。 m=9。 m++) /*十位數(shù)字 m循環(huán) */ for(n=1。 n=9。 n++) /*個(gè)位數(shù)字 n循環(huán) */ if((m*10+n)*(n*10+m)==2701) goto end。 /*轉(zhuǎn)到標(biāo)號(hào) end處去執(zhí)行 */ end: printf(m=%d,n=%d\n, m,n)。 } 方法 2 使用 break語(yǔ)句要逐層退出循環(huán) 。 main() { int m,n,flag=0。 /*flag是標(biāo)志變量 */ for(m=1。 m=9。 m++) { for(n=1。 n=9。 n++) if((m*10+n)*(n*10+m)==2701) { flag=1。 break。 } /*退出內(nèi)層循環(huán) */ if(flag) break。 /*退出外層循環(huán) */ } printf(m=%d,n=%d\n, m,n)。 } 第 6章 數(shù)組 本章主要介紹數(shù)組概念,一維數(shù)組、二維數(shù)組與字符數(shù)組的定義和引用,以及它們?cè)诔绦蛟O(shè)計(jì)中的應(yīng)用。 數(shù)組的由來(lái) 一維數(shù)組 二維數(shù)組 字符串及其處理 數(shù)組的由來(lái) 問(wèn)題: 輸入 20個(gè)學(xué)生的單科成績(jī) , 輸出高于平均分的成績(jī) , 那程序該如何設(shè)計(jì)呢 ? 利用前面已學(xué)過(guò)的知識(shí) , 程序可以這樣編寫: main() { float s1,s2,…… ,s20, sum, aver。 /*省略號(hào)部分 , 由讀者補(bǔ)上 */ scanf(%f%f…… %f, amp。s1,amp。s2,…… ,amp。s20)。 /*輸入學(xué)生的單科成績(jī) */ sum=s1+s2+…… +s20。 /*求總成績(jī) */ aver=sum/20。 /*求平均分 */ if(s1aver) printf (%.2f , s1)。 /*輸出高于平均分的成績(jī) */ if(s2aver) printf (%.2f , s2)。 ………… if(s20aver) printf (%.2f , s20)。 printf (\n)。 } 這個(gè)程序 太麻煩了 : 同類型的變量要定義 20個(gè) , 比較操作也要寫 20次 。 如果是 50個(gè)學(xué)生 , 100個(gè)學(xué)生呢 ? 程序要寫得很長(zhǎng)很長(zhǎng) 。 顯然 , 這種方法不可取 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1