




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第3章章 程序設(shè)計初步程序設(shè)計初步第第4章章 函數(shù)與預(yù)處理函數(shù)與預(yù)處理第第5章章 數(shù)組數(shù)組第第6章章 指針指針第第7章章 自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型第第2 2篇篇面向過程的程序設(shè)計面向過程的程序設(shè)計第第3章章 程序設(shè)計初步程序設(shè)計初步3.1 面向過程的程序設(shè)計和算法面向過程的程序設(shè)計和算法3.2 +程序和語句程序和語句3.3 賦值語句賦值語句3.4 c+的輸入與輸出的輸入與輸出3.5 編寫順序結(jié)構(gòu)的程序編寫順序結(jié)構(gòu)的程序3.6 關(guān)系運算和邏輯運算關(guān)系運算和邏輯運算3.7 選擇結(jié)構(gòu)和語句選擇結(jié)構(gòu)和語句3.8 條件運算符和條件表達式條件運算符和條件表達式3.9 多分支選擇結(jié)構(gòu)和多分支選擇結(jié)構(gòu)和
2、switch語句語句3.10 編寫選擇結(jié)構(gòu)的程序編寫選擇結(jié)構(gòu)的程序3.11 循環(huán)結(jié)構(gòu)和循環(huán)語句循環(huán)結(jié)構(gòu)和循環(huán)語句3.12 循環(huán)的嵌套循環(huán)的嵌套3.13 break語句和語句和continue語句語句3.14 編寫循環(huán)結(jié)構(gòu)的程序編寫循環(huán)結(jié)構(gòu)的程序在面向過程的程序設(shè)計中,程序設(shè)計者必須指定計在面向過程的程序設(shè)計中,程序設(shè)計者必須指定計算機執(zhí)行的具體步驟,程序設(shè)計者不僅要考慮程序算機執(zhí)行的具體步驟,程序設(shè)計者不僅要考慮程序要要“做什么做什么”,還要解決,還要解決“怎么做怎么做”的問題,根據(jù)的問題,根據(jù)程序要程序要“做什么做什么”的要求,寫出一個個語句,安排的要求,寫出一個個語句,安排好它們的執(zhí)行順序
3、。怎樣設(shè)計這些步驟,怎樣保證好它們的執(zhí)行順序。怎樣設(shè)計這些步驟,怎樣保證它的它的正確性正確性和具有和具有較高的效率較高的效率,這就是算法需要解,這就是算法需要解決的問題。決的問題。3.1 面向過程的程序設(shè)計和算法面向過程的程序設(shè)計和算法一個面向過程的程序應(yīng)包括以下兩方面內(nèi)容:一個面向過程的程序應(yīng)包括以下兩方面內(nèi)容:(1) 對數(shù)據(jù)的描述。對數(shù)據(jù)的描述。在程序中要指定在程序中要指定數(shù)據(jù)的類型數(shù)據(jù)的類型和和數(shù)據(jù)的組織形式數(shù)據(jù)的組織形式,即,即數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)(data structure)。(2) 對操作的描述。對操作的描述。即操作步驟,也就是即操作步驟,也就是算法算法(algorithm)。對于面
4、向過程的程序,可以用下面的公式表示:對于面向過程的程序,可以用下面的公式表示: 程序程序=算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 作為程序設(shè)計人員,必須認真考慮和設(shè)計數(shù)據(jù)結(jié)構(gòu)作為程序設(shè)計人員,必須認真考慮和設(shè)計數(shù)據(jù)結(jié)構(gòu)和操作步驟和操作步驟(即算法即算法)。算法是處理問題的一系列的步驟。算法是處理問題的一系列的步驟。算法必須具體地算法必須具體地指出在執(zhí)行時每一步應(yīng)當(dāng)怎樣做。指出在執(zhí)行時每一步應(yīng)當(dāng)怎樣做。3.1.1 算法的概念算法的概念不要認為只有不要認為只有“計算計算”的問題才有算法。的問題才有算法。廣義地說,廣義地說,為解決一個問題而采取的方法和步驟,就稱為為解決一個問題而采取的方法和步驟,就稱為“算算法
5、法”。計算機算法可分為兩大類別:計算機算法可分為兩大類別:數(shù)值算法數(shù)值算法和和非數(shù)值算非數(shù)值算法法。數(shù)值算法的目的是求數(shù)值解數(shù)值算法的目的是求數(shù)值解。非數(shù)值算法包括非數(shù)值算法包括的面十分廣泛,最常見的是用于事務(wù)管理領(lǐng)域。的面十分廣泛,最常見的是用于事務(wù)管理領(lǐng)域。目目前,計算機在非數(shù)值方面的應(yīng)用遠遠超過了在數(shù)值前,計算機在非數(shù)值方面的應(yīng)用遠遠超過了在數(shù)值方面的應(yīng)用。方面的應(yīng)用。c+既支持面向過程的程序設(shè)計,又支持面向?qū)ο蠹戎С置嫦蜻^程的程序設(shè)計,又支持面向?qū)ο蟮某绦蛟O(shè)計。無論面向過程的程序設(shè)計還是面向?qū)Φ某绦蛟O(shè)計。無論面向過程的程序設(shè)計還是面向?qū)ο蟮某绦蛟O(shè)計,都離不開算法設(shè)計。象的程序設(shè)計,都離
6、不開算法設(shè)計。由第由第1章已知,一個程序包含一個或多個程序單位章已知,一個程序包含一個或多個程序單位(每個程序單位構(gòu)成一個程序文件每個程序單位構(gòu)成一個程序文件)。每一個程序單。每一個程序單位由以下幾個部分組成:位由以下幾個部分組成: (1) 預(yù)處理命令預(yù)處理命令。如。如#include命令和命令和#define命令。命令。(2) 聲明部分聲明部分。例如對數(shù)據(jù)類型和函數(shù)的聲明,以。例如對數(shù)據(jù)類型和函數(shù)的聲明,以及對變量的定義。及對變量的定義。(3) 函數(shù)函數(shù)。包括函數(shù)首部和函數(shù)體,在函數(shù)體中可包括函數(shù)首部和函數(shù)體,在函數(shù)體中可以包含若干聲明語句和執(zhí)行語句以包含若干聲明語句和執(zhí)行語句。如下面是一個
7、完整的如下面是一個完整的c+程序:程序:3.2 c+程序和語句程序和語句#include /預(yù)處理命令預(yù)處理命令using namespace std; /在函數(shù)之外的聲明部分在函數(shù)之外的聲明部分int a=3; /在函數(shù)之外的聲明部分在函數(shù)之外的聲明部分int main( ) /函數(shù)首部函數(shù)首部 float b; /函數(shù)內(nèi)的聲明部分函數(shù)內(nèi)的聲明部分 b=4.5; /執(zhí)行語句執(zhí)行語句 coutab; /執(zhí)行語句執(zhí)行語句 return 0; /執(zhí)行語句執(zhí)行語句如果一個變量在函數(shù)之外進行聲明,此變量是如果一個變量在函數(shù)之外進行聲明,此變量是全局全局變量變量,它的,它的有效范圍是從該行開始到本程序單
8、位結(jié)有效范圍是從該行開始到本程序單位結(jié)束束。如果一個變量在函數(shù)內(nèi)聲明,此變量是。如果一個變量在函數(shù)內(nèi)聲明,此變量是局部變局部變量量,它的,它的有效范圍是從該行開始到本函數(shù)結(jié)束有效范圍是從該行開始到本函數(shù)結(jié)束。c+程序結(jié)構(gòu)可以用圖程序結(jié)構(gòu)可以用圖31表示。表示。圖圖3.1程序應(yīng)該包括程序應(yīng)該包括數(shù)據(jù)描述數(shù)據(jù)描述(由聲明語句來實現(xiàn))和(由聲明語句來實現(xiàn))和數(shù)數(shù)據(jù)操作據(jù)操作(由執(zhí)行語句來實現(xiàn))。(由執(zhí)行語句來實現(xiàn))。數(shù)據(jù)描述主要包括數(shù)據(jù)描述主要包括數(shù)據(jù)類型的聲明、函數(shù)和變量的定義、變量的初始數(shù)據(jù)類型的聲明、函數(shù)和變量的定義、變量的初始化等。數(shù)據(jù)操作的任務(wù)是對已提供的數(shù)據(jù)進行加工。化等。數(shù)據(jù)操作的任務(wù)
9、是對已提供的數(shù)據(jù)進行加工。c+程序中最小的獨立單位是程序中最小的獨立單位是語句語句(statement)。它。它相當(dāng)于一篇文章中的一個句子。句子是用句號結(jié)束相當(dāng)于一篇文章中的一個句子。句子是用句號結(jié)束的。語句一般是用分號結(jié)束的的。語句一般是用分號結(jié)束的(復(fù)合語句是以右花復(fù)合語句是以右花括號結(jié)束的括號結(jié)束的)。c+語句可以分為以下語句可以分為以下4種:種:1. 聲明語句聲明語句如如int a,b;在在c語言中,只有產(chǎn)生實際操作的才稱為語言中,只有產(chǎn)生實際操作的才稱為語句,對變量的定義不作為語句,而且語句,對變量的定義不作為語句,而且要求對變量要求對變量的定義必須出現(xiàn)在本塊中所有程序語句之前的定義
10、必須出現(xiàn)在本塊中所有程序語句之前。因此。因此c程序員已經(jīng)養(yǎng)成了一個習(xí)慣:程序員已經(jīng)養(yǎng)成了一個習(xí)慣: 在函數(shù)或塊的開頭在函數(shù)或塊的開頭位置定義全部變量。在位置定義全部變量。在c+中,對變量中,對變量(以及其他以及其他對象對象)的定義被認為是一條語句,并且可以出現(xiàn)在的定義被認為是一條語句,并且可以出現(xiàn)在函數(shù)中的任何行,即可以放在其他程序語句可以出函數(shù)中的任何行,即可以放在其他程序語句可以出現(xiàn)的地方,也可以放在函數(shù)之外。這樣更加靈活,現(xiàn)的地方,也可以放在函數(shù)之外。這樣更加靈活,可以很方便地實現(xiàn)變量的局部化可以很方便地實現(xiàn)變量的局部化(變量的作用范圍變量的作用范圍從聲明語句開始到本函數(shù)或本塊結(jié)束從聲明
11、語句開始到本函數(shù)或本塊結(jié)束)。2. 執(zhí)行語句執(zhí)行語句通知計算機完成一定的操作。執(zhí)行語句包括:通知計算機完成一定的操作。執(zhí)行語句包括: (1) 控制語句控制語句,完成一定的控制功能。,完成一定的控制功能。c+有有9種種控制語句,控制語句,即即 if( )else (條件語句)(條件語句) for( ) (循環(huán)語句)(循環(huán)語句) while( ) (循環(huán)語句)(循環(huán)語句) dowhile( ) (循環(huán)語句)(循環(huán)語句) continue (結(jié)束本次循環(huán)語句)(結(jié)束本次循環(huán)語句) break (中止執(zhí)行或循環(huán)語句)(中止執(zhí)行或循環(huán)語句) switch (多分支選擇語句)(多分支選擇語句) goto
12、(轉(zhuǎn)向語句)(轉(zhuǎn)向語句) return (從函數(shù)返回語句)(從函數(shù)返回語句)(2) 函數(shù)和流對象調(diào)用語句函數(shù)和流對象調(diào)用語句。函數(shù)調(diào)用語句由一次函數(shù)調(diào)用函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成一個語句,加一個分號構(gòu)成一個語句,例如例如sort(x,y,z); /假設(shè)已定義了假設(shè)已定義了sort函數(shù),它有函數(shù),它有3個參數(shù)個參數(shù)coutx100) z=z-100;cout0) cout0endl;按語法規(guī)定按語法規(guī)定if后面的后面的( )內(nèi)是一個條件。現(xiàn)在在內(nèi)是一個條件?,F(xiàn)在在x的位的位置上換上一個賦值表達式置上換上一個賦值表達式“a=b”,其作用是:先進,其作用是:先進行賦值運算(將行賦值運算
13、(將b的值賦給的值賦給a),然后判斷),然后判斷a是否大是否大于于0,如大于,如大于0,執(zhí)行,執(zhí)行cout00) cout0endl;因為在因為在if的條件中不能包含賦值語句。的條件中不能包含賦值語句。c+把賦值把賦值語句和賦值表達式區(qū)別開來,增加了表達式的種類,語句和賦值表達式區(qū)別開來,增加了表達式的種類,能實現(xiàn)其他語言中難以實現(xiàn)的功能。能實現(xiàn)其他語言中難以實現(xiàn)的功能。c和和c+本身都沒有為輸入和輸出提供專門的語句本身都沒有為輸入和輸出提供專門的語句結(jié)構(gòu)。輸入輸出不是由結(jié)構(gòu)。輸入輸出不是由c+本身定義的,而是在本身定義的,而是在編編譯系統(tǒng)提供的譯系統(tǒng)提供的i/o庫中定義庫中定義的。的。c+的
14、輸出和輸入是用的輸出和輸入是用“流流”(stream)的方式實現(xiàn)的方式實現(xiàn)的。的。有關(guān)流對象有關(guān)流對象cin、cout和流運算符的定義等信息是存和流運算符的定義等信息是存放在放在c+的的輸入輸出流庫輸入輸出流庫中的,因此如果在程序中中的,因此如果在程序中使用使用cin、cout和流運算符,就和流運算符,就必須使用預(yù)處理命令必須使用預(yù)處理命令把把頭文件頭文件stream包含到本文件中:包含到本文件中: #include 3.4 c+的輸入與輸出的輸入與輸出cout語句語句的一般格式為的一般格式為 cout表達式表達式1表達式表達式2變量變量1變量變量2變量變量n;在定義流對象時,系統(tǒng)會在內(nèi)存中開
15、辟一段緩沖區(qū),在定義流對象時,系統(tǒng)會在內(nèi)存中開辟一段緩沖區(qū),用來暫存輸入輸出流的數(shù)據(jù)。在執(zhí)行用來暫存輸入輸出流的數(shù)據(jù)。在執(zhí)行cout語句時,語句時,先把插入的數(shù)據(jù)順序存放在輸出緩沖區(qū)中,直到輸先把插入的數(shù)據(jù)順序存放在輸出緩沖區(qū)中,直到輸出緩沖區(qū)滿或遇到出緩沖區(qū)滿或遇到cout語句中的語句中的endl(或或n,ends,flush)為止,此時將緩沖區(qū)中已有的數(shù)據(jù)一起輸出,為止,此時將緩沖區(qū)中已有的數(shù)據(jù)一起輸出,并清空緩沖區(qū)。輸出流中的數(shù)據(jù)在系統(tǒng)默認的設(shè)備并清空緩沖區(qū)。輸出流中的數(shù)據(jù)在系統(tǒng)默認的設(shè)備(一般為顯示器一般為顯示器)輸出。輸出。*3.4.1 輸入流與輸出流的基本操作輸入流與輸出流的基本操
16、作一個一個cout語句可以分寫成若干行。語句可以分寫成若干行。如如coutthis is a simple c+ program.endl;可以寫成可以寫成 coutthis is /注意行末尾無分號注意行末尾無分號a c+ program.endl; /語句最后有分號語句最后有分號也可寫成多個也可寫成多個cout語句語句,即,即coutthis is ; /語句末尾有分號語句末尾有分號cout a c+ ;cout program.;coutendl;以上以上3種情況的輸出均為種情況的輸出均為this is a simple c+ program.注意注意 不能用一個插入運算符不能用一個插入
17、運算符“”插入多個輸出項:插入多個輸出項:couta,b,c; /錯誤,不能一次插入多項錯誤,不能一次插入多項couta+b+c; /正確,這是一個表達式,作為一項正確,這是一個表達式,作為一項在用在用cout輸出時,用戶不必通知計算機按何種類型輸出時,用戶不必通知計算機按何種類型輸出,系統(tǒng)會自動判別輸出數(shù)據(jù)的類型,使輸出的輸出,系統(tǒng)會自動判別輸出數(shù)據(jù)的類型,使輸出的數(shù)據(jù)按相應(yīng)的類型輸出。數(shù)據(jù)按相應(yīng)的類型輸出。如已定義如已定義a為為int型,型,b為為float型,型,c為為char型,則型,則couta b cabcd;可以寫成可以寫成 cina /注意行末尾無分號注意行末尾無分號 b /這
18、樣寫可能看起來清晰些這樣寫可能看起來清晰些 c d; 也可以寫成也可以寫成cina;cinb;cinc;cind;以上以上3種情況均可以從鍵盤輸入:種情況均可以從鍵盤輸入: 1 2 3 4 也可以分多行輸入數(shù)據(jù):也可以分多行輸入數(shù)據(jù): 1 2 3 4 在用在用cin輸入時,系統(tǒng)也會根據(jù)變量的類型從輸入輸入時,系統(tǒng)也會根據(jù)變量的類型從輸入流中提取相應(yīng)長度的字節(jié)。流中提取相應(yīng)長度的字節(jié)。如有如有char c1,c2;int a;float b;cinc1c2ab;如果輸入如果輸入1234 56.78 注意:注意: 34后面應(yīng)該有空格以便和后面應(yīng)該有空格以便和56.78分隔開。也分隔開。也可以按下面
19、格式輸入:可以按下面格式輸入:1 2 34 56.78 (在在1和和2之間有空格之間有空格)不能用不能用cin語句把空格字符和回車換行符作為字符語句把空格字符和回車換行符作為字符輸入給字符變量,它們將被跳過。輸入給字符變量,它們將被跳過。如果想將空格字如果想將空格字符或回車換行符符或回車換行符(或任何其他鍵盤上的字符或任何其他鍵盤上的字符)輸入給輸入給字符變量,可以用字符變量,可以用3.4.3節(jié)介紹的節(jié)介紹的getchar函數(shù)。函數(shù)。在組織輸入流數(shù)據(jù)時,要仔細分析在組織輸入流數(shù)據(jù)時,要仔細分析cin語句中變量語句中變量的類型,按照相應(yīng)的格式輸入,否則容易出錯。的類型,按照相應(yīng)的格式輸入,否則容
20、易出錯。上面介紹的是使用上面介紹的是使用cout和和cin時的默認格式。但有時時的默認格式。但有時人們在輸入輸出時有一些特殊的要求,如在輸出實人們在輸入輸出時有一些特殊的要求,如在輸出實數(shù)時數(shù)時規(guī)定字段寬度規(guī)定字段寬度,只,只保留兩位小數(shù)保留兩位小數(shù),數(shù)據(jù)向左或數(shù)據(jù)向左或向右對齊向右對齊等。等。c+提供了在輸入輸出流中使用的控提供了在輸入輸出流中使用的控制符制符(有的書中稱為操縱符有的書中稱為操縱符),見書中表,見書中表3.1。需要注意的是:需要注意的是: 如果使用了控制符,在程序單位如果使用了控制符,在程序單位的開頭除了要加的開頭除了要加iostream頭文件外,還要加頭文件外,還要加iom
21、anip頭文件。頭文件。*3.4.2 在輸入流與輸出流中使用控制符在輸入流與輸出流中使用控制符c+還保留了還保留了c語言中用于輸入和輸出單個字符的語言中用于輸入和輸出單個字符的函數(shù),使用很方便。其中最常用的有函數(shù),使用很方便。其中最常用的有g(shù)etchar函數(shù)函數(shù)和和putchar函數(shù)函數(shù)。1. putchar函數(shù)函數(shù)(字符輸出函數(shù))(字符輸出函數(shù))putchar函數(shù)的作用是向終端輸出一個字符。例如函數(shù)的作用是向終端輸出一個字符。例如putchar(c);它輸出字符變量的值。它輸出字符變量的值。3.4.3 用用getchar和和putchar 函數(shù)進行字符的輸入和輸出函數(shù)進行字符的輸入和輸出例例
22、3.2 輸出單個字符。輸出單個字符。#include /或者包含頭文件或者包含頭文件stdio.h: #include using namespace std;int main( )char a,b,c; a=b;b=o;c=y; putchar(a);putchar(b);putchar(c);putchar(n); putchar(66);putchar(79);putchar(89);putchar(10); return 0;運行結(jié)果為運行結(jié)果為boyboy可以看到:可以看到: 用用putchar可以輸出轉(zhuǎn)義字符,可以輸出轉(zhuǎn)義字符,putchar(n)的作用是輸出一個換行符,使輸出的作
23、用是輸出一個換行符,使輸出的當(dāng)前位置移到下一行的開頭。的當(dāng)前位置移到下一行的開頭。putchar(66)的作用的作用是將是將66作為作為ascii碼轉(zhuǎn)換為字符輸出,碼轉(zhuǎn)換為字符輸出,66是字母是字母b的的ascii碼,因此碼,因此putchar(66)輸出字母輸出字母b。其余類。其余類似。似。putchar(10)中的中的10是換行符的是換行符的ascii碼,碼,putchar(10)輸出一個換行符,作用與輸出一個換行符,作用與putchar(n) 相同。相同。也可以輸出其他轉(zhuǎn)義字符也可以輸出其他轉(zhuǎn)義字符,如,如 putchar(101) (輸出字符(輸出字符a,八進制的,八進制的101是是a
24、的的ascii碼)碼) putchar() (輸出單引號字符(輸出單引號字符) putchar(015) (輸出回車,不換行,使輸出的當(dāng)前位置(輸出回車,不換行,使輸出的當(dāng)前位置移到本行開頭)移到本行開頭)2. getchar函數(shù)函數(shù)(字符輸入函數(shù))(字符輸入函數(shù))此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。備)輸入一個字符。getchar函數(shù)沒有參數(shù),其一函數(shù)沒有參數(shù),其一般形式為般形式為getchar( )函數(shù)的值就是從輸入設(shè)備得)函數(shù)的值就是從輸入設(shè)備得到的字符。到的字符。例例3.3 輸入單個字符。輸入單個字符。#includ
25、e using namespace std;int main( )char c; c=getchar( ); putchar(c+32); putchar(n); return 0; 在運行時,如果從鍵盤輸入大寫字母在運行時,如果從鍵盤輸入大寫字母a并按回車并按回車鍵,就會在屏幕上輸出小寫字母鍵,就會在屏幕上輸出小寫字母a。請注意,請注意,getchar( )只能接收一個字符只能接收一個字符。getchar函函數(shù)得到的字符可以賦給一個字符變量或整型變量,數(shù)得到的字符可以賦給一個字符變量或整型變量,也可以不賦給任何變量,作為表達式的一部分。也可以不賦給任何變量,作為表達式的一部分。在在c語言中是
26、用語言中是用printf函數(shù)進行輸出,用函數(shù)進行輸出,用scanf函數(shù)函數(shù)進行輸入的。進行輸入的。c+保留了保留了c語言的這一用法。在此語言的這一用法。在此只作很簡單的介紹。只作很簡單的介紹。scanf函數(shù)一般格式是函數(shù)一般格式是 scanf(格式控制,輸出表列格式控制,輸出表列)printf函數(shù)的一般格式是函數(shù)的一般格式是printf(格式控制,輸出表列格式控制,輸出表列)3.4.4 用用scanf和和printf函數(shù)進行輸入和輸出函數(shù)進行輸入和輸出例例3.4 用用scanf和和printf函數(shù)進行輸入和輸出。函數(shù)進行輸入和輸出。#include using namespace std;in
27、t main( )int a; float b; char c; scanf(%d %c %f,&a,&c,&b); /注意在變量名前要加地址運算注意在變量名前要加地址運算符符& printf(a=%d,b=%f,c=%cn,a,b,c); return 0;運行情況如下:運行情況如下:12 a 67.98 (本行為輸入,輸入的本行為輸入,輸入的3個數(shù)據(jù)間以空格相間個數(shù)據(jù)間以空格相間)a=12,b=67.980003,c=a(本行為輸出本行為輸出) 輸入的整數(shù)輸入的整數(shù)12送給整型變量送給整型變量a,字符,字符a送給字符變送給字符變量量c,67.98送給單精度變
28、量送給單精度變量b。例例3.5 求一元二次方程式求一元二次方程式ax2+bx+c=0的根。的根。a,b,c的的值在運行時由鍵盤輸入,它們的值滿足值在運行時由鍵盤輸入,它們的值滿足b2-4ac0。根據(jù)求根據(jù)求x1,x2的算法。它可以編寫出以下的算法。它可以編寫出以下c+程序:程序: #include #include /程序要用到數(shù)學(xué)程序要用到數(shù)學(xué)函數(shù)函數(shù)sqrt,應(yīng)包含頭文件,應(yīng)包含頭文件cmathusing namespace std;int main( )float a,b,c,x1,x2; cinabc; x1=(-b+sqrt(b*b-4*a*c)/(2*a); x2=(-b-sqrt
29、(b*b-4*a*c)/(2*a); coutx1=x1endl; coutx2=x2endl; return 0;3.5 編寫順序結(jié)構(gòu)的程序編寫順序結(jié)構(gòu)的程序運行情況如下:運行情況如下: 4.5 8.8 2.4 x1=-0.327612x2=-1.17794如果程序中要用到數(shù)學(xué)函數(shù),都要包含頭文件如果程序中要用到數(shù)學(xué)函數(shù),都要包含頭文件cmath(也可以用老形式的頭文件也可以用老形式的頭文件math.h,但提倡使,但提倡使用用c+新形式的頭文件,新形式的頭文件,請參閱第請參閱第14章章14.3節(jié)節(jié))。在在寫程序時,一定要注意將數(shù)學(xué)表達式正確地轉(zhuǎn)換成寫程序時,一定要注意將數(shù)學(xué)表達式正確地轉(zhuǎn)換成
30、合法的合法的c+表達式。表達式??梢钥吹剑嚎梢钥吹剑?順序結(jié)構(gòu)的程序中的各執(zhí)行語句是順順序結(jié)構(gòu)的程序中的各執(zhí)行語句是順序執(zhí)行的。這種程序最簡單,最容易理解。序執(zhí)行的。這種程序最簡單,最容易理解。例如,購物在例如,購物在1000元以下的打九五折,元以下的打九五折,1000元及以元及以上的打九折。上的打九折。c+提供提供if語句來實現(xiàn)這種語句來實現(xiàn)這種條件選擇條件選擇。如。如if amount1000 tax=0.95; /amount代表購物總額,代表購物總額,tax代表折扣代表折扣else tax=0.9; /若若amount1000,條件滿足,條件滿足,tax=0.95,否則,否則tax=0
31、.9pay=amount*tax; /pay為實付款為實付款流程可以用圖流程可以用圖3.4表示。表示。圖圖3.43.6 關(guān)系運算和邏輯運算關(guān)系運算和邏輯運算上面上面if語句中的語句中的“amount1000”實現(xiàn)的不是算術(shù)運實現(xiàn)的不是算術(shù)運算,而是關(guān)系運算。算,而是關(guān)系運算。amount”是一是一個比較符,稱為關(guān)系運算符。個比較符,稱為關(guān)系運算符。c+的關(guān)系運算符有:的關(guān)系運算符有: (小于小于) (大于大于) = (大于或等于大于或等于) = (等于等于) != (不等于不等于) 優(yōu)先級相同優(yōu)先級相同 (低低)3.6.1 關(guān)系運算和關(guān)系表達式關(guān)系運算和關(guān)系表達式關(guān)于優(yōu)先次序:關(guān)于優(yōu)先次序:
32、前前4種關(guān)系運算符(種關(guān)系運算符(,)的優(yōu)先級)的優(yōu)先級別相同,后兩種也相同。前別相同,后兩種也相同。前4種高于后兩種。種高于后兩種。例如,例如,“”優(yōu)先于優(yōu)先于“”。而。而“”與與“a+b 等效于等效于 c(a+b) ab=c 等效于等效于(ab)=c a=bc 等效于等效于a=(bc 等效于等效于a=(bc)用關(guān)系運算符將兩個表達式連接起來的式子,稱為用關(guān)系運算符將兩個表達式連接起來的式子,稱為關(guān)系表達式。關(guān)系表達式的一般形式可以表示為關(guān)系表達式。關(guān)系表達式的一般形式可以表示為表達式表達式 關(guān)系運算符關(guān)系運算符 表達式表達式其中的其中的“表達式表達式”可以是算術(shù)表達式或關(guān)系表達式、可以是算
33、術(shù)表達式或關(guān)系表達式、邏輯表達式、賦值表達式、字符表達式。例如,下邏輯表達式、賦值表達式、字符表達式。例如,下面都是合法的關(guān)系表達式:面都是合法的關(guān)系表達式:ab, a+bb+c,(a=3)(b=5), ab)(b=0”的值為的值為“真真”。在在c和和c+中都用數(shù)值中都用數(shù)值1代表代表“真真”,用用0代表代表“假假”。如果有以下賦值表達式:如果有以下賦值表達式:d=ab 則則d得到的值為得到的值為1f=abc f得到的值為得到的值為0c語言沒有提供邏輯型數(shù)據(jù),關(guān)系表達式的值語言沒有提供邏輯型數(shù)據(jù),關(guān)系表達式的值(真或真或假假)分別用數(shù)值分別用數(shù)值1和和0代表。代表。c+增加了邏輯型數(shù)據(jù)增加了邏
34、輯型數(shù)據(jù)。邏輯型常量只有兩個,邏輯型常量只有兩個,即即false(假假)和和true(真真)。邏輯型變量要用類型標識符邏輯型變量要用類型標識符bool來定義,它的值只來定義,它的值只能是能是true和和false之一。之一。如如bool found,flag=false; /定義邏輯變量定義邏輯變量found和和flag,并使,并使flag的初值的初值為為falsefound=true; /將邏輯常量將邏輯常量true賦給邏輯變量賦給邏輯變量found由于邏輯變量是用關(guān)鍵字由于邏輯變量是用關(guān)鍵字bool來定義的,因此又稱來定義的,因此又稱為布爾變量。邏輯型常量又稱為布爾常量。所謂邏為布爾變量。
35、邏輯型常量又稱為布爾常量。所謂邏輯型,就是布爾型。輯型,就是布爾型。3.6.2 邏輯常量和邏輯變量邏輯常量和邏輯變量在編譯系統(tǒng)處理邏輯型數(shù)據(jù)時,將在編譯系統(tǒng)處理邏輯型數(shù)據(jù)時,將false處理為處理為0,將將true處理為處理為1。因此,邏輯型數(shù)據(jù)可以與數(shù)值型。因此,邏輯型數(shù)據(jù)可以與數(shù)值型數(shù)據(jù)進行算術(shù)運算。數(shù)據(jù)進行算術(shù)運算。如果將一個非零的整數(shù)賦給邏輯型變量,則按如果將一個非零的整數(shù)賦給邏輯型變量,則按“真真”處理,如處理,如flag=123; /賦值后賦值后flag的值為的值為truecoutb) & (xy) 可寫成可寫成 ab & xy (a=b) | (x=y) 可寫成可
36、寫成 a=b | x=y (!a) | (ab) 可寫成可寫成 !a | ab將兩個關(guān)系表達式用邏輯運算符連接起來就成為一將兩個關(guān)系表達式用邏輯運算符連接起來就成為一個邏輯表達式,上面幾個式子就是邏輯表達式。個邏輯表達式,上面幾個式子就是邏輯表達式。邏邏輯表達式的一般形式可以表示為輯表達式的一般形式可以表示為表達式表達式 邏輯運算符邏輯運算符 表達式表達式邏輯表達式的值是一個邏輯量邏輯表達式的值是一個邏輯量“真真”或或“假假”。前。前面已說明,在給出邏輯運算結(jié)果時,以數(shù)值面已說明,在給出邏輯運算結(jié)果時,以數(shù)值1代表代表“真真”,以,以0代表代表“假假”,但在判斷一個邏輯量是,但在判斷一個邏輯量
37、是否為否為“真真”時,采取的標準是:時,采取的標準是: 如果其值是如果其值是0就認就認為是為是“假假”,如果其值是非,如果其值是非0就認為是就認為是“真真”。例。例如:如:(1) 若若a=4,則,則!a的值為的值為0。因為。因為a的值為非的值為非0,被認作,被認作“真真”,對它進行對它進行“非非”運算,得運算,得“假假”,“假假”以以0代表。代表。(2) 若若a=4,b=5,則,則a & b的值為的值為1。因為。因為a和和b均為非均為非0,被,被認為是認為是“真真” 。(3) a,b值同前,值同前,a-b|a+b的值為的值為1。因為。因為a-b和和a+b的值都為非的值都為非零值。零值。
38、(4) a,b值同前,值同前,!a | b的值為的值為1。(5) 4 & 0 | 2 的值為的值為1。if語句是用來判定所給定的條件是否滿足,根據(jù)判語句是用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。3.7 選擇結(jié)構(gòu)和語句選擇結(jié)構(gòu)和語句1. (表達式)語句(表達式)語句例如:例如:if(xy) coutxy) coutx;else cout500) cost=0.15;else if(number300) cost=0.10;else if(number100) cost=0.075;else if(nu
39、mber50) cost=0.05;else cost=0;圖圖3.說明:說明:(1) 從圖從圖3.5和圖和圖3.6可以看到:可以看到: 3種形式的種形式的if語句都語句都是由一個入口進來,經(jīng)過對是由一個入口進來,經(jīng)過對“表達式表達式”的判斷,分的判斷,分別執(zhí)行相應(yīng)的語句,最后歸到一個共同的出口。這別執(zhí)行相應(yīng)的語句,最后歸到一個共同的出口。這種形式的程序結(jié)構(gòu)稱為選擇結(jié)構(gòu)。種形式的程序結(jié)構(gòu)稱為選擇結(jié)構(gòu)。在在c+中中if語句語句是實現(xiàn)選擇結(jié)構(gòu)主要的語句。是實現(xiàn)選擇結(jié)構(gòu)主要的語句。(2) 3種形式的種形式的if語句中在語句中在if后面都有一個用括號括起后面都有一個用括號括起來的表達式,它是程序編寫者
40、要求程序判斷的來的表達式,它是程序編寫者要求程序判斷的“條條件件”,一般是,一般是邏輯表達式邏輯表達式或或關(guān)系表達式關(guān)系表達式。(3) 第第2、第、第3種形式的種形式的if語句中,在每個語句中,在每個else前面有前面有一分號,整個語句結(jié)束處有一分號。一分號,整個語句結(jié)束處有一分號。(4) 在在if和和else后面可以只含一個內(nèi)嵌的操作語句后面可以只含一個內(nèi)嵌的操作語句(如上例),也可以有多個操作語句,此時用花括(如上例),也可以有多個操作語句,此時用花括號號“”將幾個語句括起來成為一個復(fù)合語句。將幾個語句括起來成為一個復(fù)合語句。例例3.6 求三角形的面積。求三角形的面積。#include #
41、include /使用數(shù)學(xué)函數(shù)時要包含頭文件使用數(shù)學(xué)函數(shù)時要包含頭文件cmath#include /使用使用i/o流控制符要包含頭文件流控制符要包含頭文件iomanipusing namespace std;int main( ) double a,b,c; coutabc; if (a+bc & b+ca & c+ab) /復(fù)合語句開始復(fù)合語句開始 double s,area; /在復(fù)合語句內(nèi)定義變量在復(fù)合語句內(nèi)定義變量 s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); coutsetiosflags(ios fixed)setpreci
42、sion(4); /指定輸出的數(shù)包含指定輸出的數(shù)包含4位小數(shù)位小數(shù) coutarea=areaendl; /在復(fù)合語句內(nèi)輸出局部變量的值在復(fù)合語句內(nèi)輸出局部變量的值 /復(fù)合語句結(jié)束復(fù)合語句結(jié)束else coutit is not a trilateral!b) max=a;else max=b;可以用條件運算符可以用條件運算符(? :)來處理:來處理:max=(ab)?a:b; 其中其中“(ab)?a:b”是一個是一個“條件表達式條件表達式”。它是。它是這樣執(zhí)行的:如果這樣執(zhí)行的:如果(ab)條件為真,則條件表達式條件為真,則條件表達式的值就取的值就取“?”后面的值,即條件表達式的值為,后面的
43、值,即條件表達式的值為,否則條件表達式的值為否則條件表達式的值為“:”后面的值,即后面的值,即b。3.8 條件運算符和條件表達式條件運算符和條件表達式條件運算符要求有條件運算符要求有3個操作對象,個操作對象,稱三目(元)運稱三目(元)運算符,它是算符,它是c+中惟一的一個三目運算符中惟一的一個三目運算符。條件表。條件表達式的一般形式為達式的一般形式為表達式表達式1 ? 表達式表達式2 表達式表達式3條件運算符的執(zhí)行順序是:先求解表達式條件運算符的執(zhí)行順序是:先求解表達式1,若為,若為非非0(真)則求解表達式(真)則求解表達式2,此時表達式的值就作,此時表達式的值就作為整個條件表達式的值。若表達
44、式為整個條件表達式的值。若表達式1的值為的值為0(假),(假),則求解表達式則求解表達式3,表達式,表達式3的值就是整個條件表達式的值就是整個條件表達式的值。的值?!癿ax=(ab)?a:b” 的執(zhí)行結(jié)果是將條件表的執(zhí)行結(jié)果是將條件表達式的值賦給達式的值賦給max。也就是將。也就是將a和和b二者中的大者賦二者中的大者賦給給max。條件運算符優(yōu)先于賦值運算符,因此上面。條件運算符優(yōu)先于賦值運算符,因此上面賦值表達式的求解過程是先求解條件表達式,再將賦值表達式的求解過程是先求解條件表達式,再將它的值賦給它的值賦給max。條件表達式中,表達式條件表達式中,表達式1的類型可以與表達式的類型可以與表達式
45、2和表和表達式達式3的類型不同。如的類型不同。如x? a b如果已定義如果已定義x為整型變量,若為整型變量,若x=0,則條件表達式的,則條件表達式的值為字符值為字符b的的ascii碼。表達式碼。表達式2和表達式和表達式3的類型的類型也可以不同,此時條件表達式的值的類型為二者中也可以不同,此時條件表達式的值的類型為二者中較高的類型。如有條件表達式較高的類型。如有條件表達式xy?1:1.5,如果,如果xy,則條件表達式的值為,則條件表達式的值為1.5,若,若xy,值應(yīng)為,值應(yīng)為1,由于由于c+把把1.5按雙精度數(shù)處理,雙精度的類型比整按雙精度數(shù)處理,雙精度的類型比整型高,因此,型高,因此,將將1轉(zhuǎn)
46、換成雙精度數(shù),以此作為表達轉(zhuǎn)換成雙精度數(shù),以此作為表達式的值。式的值。例例3.7 輸入一個字符,判別它是否為大寫字母,如輸入一個字符,判別它是否為大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。然后輸出最后得到的字符。#include using namespace std;int main( ) char ch; cinch; ch=(ch=a & ch=z)?(ch+32):ch; /判別判別ch是否大寫字母,是否大寫字母,是則轉(zhuǎn)換是則轉(zhuǎn)換 coutchendl; return 0;switch語句是多分支
47、選擇語句,用來實現(xiàn)多分支選語句是多分支選擇語句,用來實現(xiàn)多分支選擇結(jié)構(gòu)。擇結(jié)構(gòu)。它的一般形式如下:它的一般形式如下:switch(表達式)(表達式) case 常量表達式常量表達式1:語句:語句1 case 常量表達式常量表達式2:語句:語句2 . case 常量表達式常量表達式n:語句:語句n default:語句:語句n+1 3.9 多分支選擇結(jié)構(gòu)和多分支選擇結(jié)構(gòu)和switch 語句語句例如,要求按照考試成績的等級打印出百分制分數(shù)例如,要求按照考試成績的等級打印出百分制分數(shù)段,可以用段,可以用switch語句實現(xiàn):語句實現(xiàn):switch(grade) case a: cout85100n;
48、 case b: cout7084n; case c: cout6069n; case d: cout60n; default : couterrorn; 說明:說明:(1) switch后面括號內(nèi)的后面括號內(nèi)的“表達式表達式”,允許為任何類型。,允許為任何類型。(2) 當(dāng)當(dāng)switch表達式值與某一個表達式值與某一個case子句中的常量表達式的子句中的常量表達式的值相匹配時,執(zhí)行此值相匹配時,執(zhí)行此case子句中的語句,若所有的子句中的語句,若所有的case子句子句中的值都不能與中的值都不能與switch表達式的值匹配,就執(zhí)行表達式的值匹配,就執(zhí)行default子句子句的內(nèi)嵌語句。的內(nèi)嵌語句
49、。(3) 每一個每一個case表達式的值必須互不相同,否則就表達式的值必須互不相同,否則就會出現(xiàn)互相矛盾的現(xiàn)象(對表達式的同一個值,有會出現(xiàn)互相矛盾的現(xiàn)象(對表達式的同一個值,有兩種或多種執(zhí)行方案)。兩種或多種執(zhí)行方案)。(4) 各個各個case和和default的出現(xiàn)次序不影響執(zhí)行結(jié)果的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)例如,可以先出現(xiàn)“default:”,再出現(xiàn),再出現(xiàn)“case d:”,然后是,然后是“case a:”。(5) 執(zhí)行完一個執(zhí)行完一個case子句后,流程控制轉(zhuǎn)移到下一子句后,流程控制轉(zhuǎn)移到下一個個case子句繼續(xù)執(zhí)行子句繼續(xù)執(zhí)行?!癱ase常量表達式常量表達式”只是起
50、只是起語句標號作用語句標號作用,并不是在該處進行條件判斷并不是在該處進行條件判斷。在執(zhí)。在執(zhí)行行switch語句時,根據(jù)語句時,根據(jù)switch表達式的值找到與之表達式的值找到與之匹配的匹配的case子句,就從此子句,就從此case子句開始執(zhí)行下去,子句開始執(zhí)行下去,不再進行判斷。例如,上面的例子中,若不再進行判斷。例如,上面的例子中,若grade的的值等于值等于a,則將連續(xù)輸出:,則將連續(xù)輸出: 85100 7084 6069 60 error因此,應(yīng)該在執(zhí)行一個因此,應(yīng)該在執(zhí)行一個case子句后,使流程跳出子句后,使流程跳出switch結(jié)構(gòu),即終止結(jié)構(gòu),即終止switch語句的執(zhí)行語句的執(zhí)
51、行??梢杂靡弧?梢杂靡粋€個break語句語句來達到此目的。將上面的來達到此目的。將上面的switch結(jié)構(gòu)結(jié)構(gòu)改寫如下:改寫如下:switch(grade) case a: cout85100n;break; case b: cout7084n;break; case c: cout6069n;break; case d: cout60n;break; default : couterrorn;break; 最后一個子句(最后一個子句(default)可以不加)可以不加break語句語句。如。如果果grade的值為的值為b,則只輸出,則只輸出“7084”。流程圖見。流程圖見圖圖3.7。圖圖3.7
52、在在case子句中雖然包含一個以上執(zhí)行語句,但可以子句中雖然包含一個以上執(zhí)行語句,但可以不必用花括號括起來,會自動順序執(zhí)行本不必用花括號括起來,會自動順序執(zhí)行本case子句子句中所有的執(zhí)行語句。中所有的執(zhí)行語句。(6) 多個多個case可以共用一組執(zhí)行語句,可以共用一組執(zhí)行語句,如如 . case a: case b: case c: cout60n; .當(dāng)當(dāng)grade的值為的值為a、b或或c時都執(zhí)行同一組語句。時都執(zhí)行同一組語句。例例3.8 編寫程序,判斷某一年是否為閏年。編寫程序,判斷某一年是否為閏年。#include using namespace std;int main( ) int
53、 year; bool leap; coutyear; /輸入年份輸入年份 if (year%4=0) /年份能被年份能被4整除整除 if(year%100=0) /年份能被年份能被4整除又能被整除又能被100整除整除 if (year%400=0) /年份能被年份能被4整除又能被整除又能被400整除整除 leap=true; /閏年,令閏年,令leap=true(真真) else leap=false; /非閏年,令非閏年,令leap=false(假假) else /年份能被年份能被4整除但不能被整除但不能被100整除肯定是閏年整除肯定是閏年 leap=true; /是閏年,令是閏年,令le
54、ap=true3.10 編寫選擇結(jié)構(gòu)的程序編寫選擇結(jié)構(gòu)的程序 else /年份不能被年份不能被4整除肯定不是閏年整除肯定不是閏年 leap=false; /若為非閏年,令若為非閏年,令leap=false if (leap) coutyear is ; /若若leap為真,就輸出年份和為真,就輸出年份和“是是” else coutyear is not ; /若若leap為真,就輸出年份和為真,就輸出年份和“不是不是” cout a leap year.endl; /輸出輸出“閏年閏年” return 0;運行情況如下:運行情況如下: 2005 2005 is not a leap year.
55、 1900 1900 is npt a leap year. 例例3.9 運輸公司對用戶計算運費。路程運輸公司對用戶計算運費。路程(s)越遠,每越遠,每公里運費越低。標準如下:公里運費越低。標準如下: s250km 沒有折扣沒有折扣 250s500 2折扣折扣 500s1000 5折扣折扣 1000s2000 8折扣折扣 2000s3000 10折扣折扣 3000s 15折扣折扣設(shè)每公里每噸貨物的基本運費為設(shè)每公里每噸貨物的基本運費為p(price的縮寫的縮寫),貨物重為貨物重為w(wright的縮寫的縮寫),距離為,折扣為,距離為,折扣為d(discount的縮寫的縮寫),則總運費,則總運費
56、f(freight的縮寫的縮寫)的計的計算公式為算公式為 f = p * w * s * (1 - d)圖圖3.8據(jù)此寫出程序如下:據(jù)此寫出程序如下: #include using namespace std;int main( )int c,s; float p,w,d,f; coutpws; if(s=3000) c=12; else c=s/250; switch (c) case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6: case 7:d=8;break; case
57、8: case 9: case 10: case 11:d=10;break; case 12:d=15;break; f=p*w*s*(1-d/100.0); coutfreight=fendl; return 0;運行情況如下:運行情況如下:please enter p,w,s:100 20 300 freight=588000在人們所要處理的問題中常常遇到需要反復(fù)執(zhí)行某在人們所要處理的問題中常常遇到需要反復(fù)執(zhí)行某一操作的情況。這就需要用到循環(huán)控制。許多應(yīng)用一操作的情況。這就需要用到循環(huán)控制。許多應(yīng)用程序都包含循環(huán)。程序都包含循環(huán)。順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是
58、結(jié)構(gòu)化程序設(shè)計的是結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu),是各種復(fù)雜程種基本結(jié)構(gòu),是各種復(fù)雜程序的基本構(gòu)造單元。序的基本構(gòu)造單元。因此程序設(shè)計者必須熟練掌握因此程序設(shè)計者必須熟練掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用方法。選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用方法。3.11 循環(huán)結(jié)構(gòu)和循環(huán)語句循環(huán)結(jié)構(gòu)和循環(huán)語句while語句的一般形式如下:語句的一般形式如下:while (表達式表達式) 語句語句其作用是:其作用是: 當(dāng)指定的條件為真當(dāng)指定的條件為真(表達式為非表達式為非0)時,時,執(zhí)行執(zhí)行while語句中的內(nèi)嵌語句。其流程圖見圖語句中的內(nèi)嵌語句。其流程圖見圖3.9。其特點是:其特點是:先判斷表達式,后執(zhí)行語句先判
59、斷表達式,后執(zhí)行語句。while循循環(huán)稱為環(huán)稱為當(dāng)型循環(huán)當(dāng)型循環(huán)。圖圖3.93.11.1 用用while語句構(gòu)成循環(huán)語句構(gòu)成循環(huán)例例3.10 求求1+2+3+100。用流程圖表示算法,見圖用流程圖表示算法,見圖3.10。根據(jù)流程圖寫出程序:根據(jù)流程圖寫出程序:#include using namespace std;int main( )int i=1,sum=0; while (i=100) sum=sum+i; i+; coutsum=sumendl;運行結(jié)果為運行結(jié)果為sum=5050 圖圖3.10需要注意:需要注意:(1) 循環(huán)體如果包含一個以上的語句,應(yīng)該用花括循環(huán)體如果包含一個以上
60、的語句,應(yīng)該用花括號括起來,以復(fù)合語句形式出現(xiàn)。號括起來,以復(fù)合語句形式出現(xiàn)。如果不加花括號,如果不加花括號,則則while語句的范圍只到語句的范圍只到while后面第一個分號處。后面第一個分號處。(2) 在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。do-while語句的特點是先執(zhí)行循環(huán)體,然后判斷循語句的特點是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。其一般形式為環(huán)條件是否成立。其一般形式為do 語句語句 while (表達式表達式);它是這樣執(zhí)行的:它是這樣執(zhí)行的:先執(zhí)行一次指定的語句先執(zhí)行一次指定的語句(即循環(huán)即循環(huán)體體),然后判別表達式,當(dāng)表達式的值為非零,然后判別表達式,當(dāng)表達式的值為非零(“真真”) 時,返回重新執(zhí)行循環(huán)體語句,如此反復(fù),時
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河南推拿職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 2025年度新型法院執(zhí)行和解協(xié)議書編制指南
- 2025年度農(nóng)村房屋拆遷與鄉(xiāng)村振興項目合作協(xié)議
- 2025年度養(yǎng)老服務(wù)機構(gòu)單位解除勞動合同及養(yǎng)老服務(wù)協(xié)議
- 2025年度合資企業(yè)股權(quán)分配與合作協(xié)議
- 2025年度工地施工期間施工進度與費用控制協(xié)議
- 液態(tài)粘合劑槽罐車運輸范本
- 智能家居別墅設(shè)計合同樣本
- 2025年度人工智能智能家居產(chǎn)品合作合同解除協(xié)議書
- 2025年度個人消費債權(quán)轉(zhuǎn)讓及分期還款協(xié)議
- 一年級寫字下學(xué)期課件(PPT 38頁)
- 《實用日本語應(yīng)用文寫作》全套電子課件完整版ppt整本書電子教案最全教學(xué)教程整套課件
- 怎樣處理課堂突發(fā)事件
- 采礦學(xué)課程設(shè)計-隆德煤礦1.8Mta新井開拓設(shè)計
- 中藥藥劑學(xué)講義(英語).doc
- 【課件】Unit1ReadingforWriting課件高中英語人教版(2019)必修第二冊
- Q∕GDW 10799.6-2018 國家電網(wǎng)有限公司電力安全工作規(guī)程 第6部分:光伏電站部分
- 滴灌工程設(shè)計示例
- 配套模塊an9238用戶手冊rev
- 醫(yī)院室外管網(wǎng)景觀綠化施工組織設(shè)計
- 霍尼韋爾DDC編程軟件(CARE)簡介
評論
0/150
提交評論