C++程序設計教程第7版-441-660_第1頁
C++程序設計教程第7版-441-660_第2頁
C++程序設計教程第7版-441-660_第3頁
C++程序設計教程第7版-441-660_第4頁
C++程序設計教程第7版-441-660_第5頁
已閱讀5頁,還剩215頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1.6.2

屏幕輸出屏幕輸出的作用從內存讀取數據項的值,轉換成相應的字符串顯示到屏幕上·輸出字符

chars;cin>>a>>$;cout<<"a*2="<<a*2<<endl;cout

<<s

<<

endl;輸出a*

2=70·

讀出

s

int

a;char

sint

a華南理工大學計算機學院周靄如20250000工00001000000000010000000000000010001例如到屏幕上例如int

a;char

schar

s;cin>>a>>s;cout

<<"a*2="<<a*2<<endl;cout

<<s<<

endl;

int

a輸出a*

2=7001000001000000000000000000000000001000工11.6.2

屏幕輸出屏幕輸出的作用從內存讀取數據項的值,轉換成相應的字符串顯示華南理工大學計算機學院周靄如202501000001000000000000000000000000001000工11.6.2

屏幕輸出屏幕輸出的作用從內存讀取數據項的值,轉換成相應的字符串顯示換行<<"a*2="<<a*2<<endl;到屏幕上例如int

a;chars;

cin>>a>>s;coutcout<<s<<end];charsint

a華南理工大學計算機學院周靄如2025輸出01000001000000000000000000000000001000工1到屏幕上例如int

a;char

s;cin>>a>>s;cout

<<"a*2="<<a*2<<endl;1.6.2

屏幕輸出屏幕輸出的作用從內存讀取數據項的值,轉換成相應的字符串顯示cout<<s<<endl;charint輸出a*2=70華南理工大學計算機學院周靄如2025sa1.6.2屏幕輸出注意:賦值符和條件運算的優先級都低于提取符:cout

<<a=b;cout<<a>b?a:b;可以添加括號改變優先級:cout

<<(a=b);cout

<<(a>b?a:b);//錯誤//錯誤//正確//正確華南理工大學計算機學院周靄如2025控制符功能endl輸出一個新行符,并清空流ends輸出一個空格符,并清空流dec用十進制表示法輸入或輸出數值hex用十六進制表示法輸入或輸出數值oct用八進制表示法輸入或輸出數值setfill

(char

c)設置填充符csetprecision(int

n)設置浮點數輸出精度(包括小數點)setw(int

n)設置輸出寬度1.6.2

屏幕輸出常用的輸出格式控制符

包含頭文件iomanip華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和#include<iostream>#include<iomanip>using

namespacestd;int

main(){int

a,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cout<<"

";cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;cout<<"十

";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;}華南理工大學計算機學院周靄如2025#include<iostream>#include<iomanip>//包含格式輸出文件using

namespace

std;int

main(){int

a,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cout<<"

";cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;cout<<"十進制";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;}華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和#include<iostream>#include<iomanip>using

namespace

std;int

main(){

inta,b,s;

//說明數據cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cout<<"

";cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;cout<<"十進制";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;

a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;}華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和#include<iostream>#include<iomanip>using

namespace

std;int

main(){inta,b,s;cout.setf(ios::showbase);

//要求輸出顯示基數符a=01137;b=023362;s=a+b;cout<<"

";cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;cout<<"十進制";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;}華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和#include<iostream>#include<iomanip>using

namespacestd;int

main(){int

a,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;

//

計算兩個八進制數的和

cout<<"八

"

;cout<<

octk<a<<"+"<<b<<"="<<s<<endl;//以八進制顯示結果a=239;b=5618;s=a+b;cout<<"十

"

;cout<<dec<<a

<<"+"<<b<<"="<<s<<endl;a=0x1a3e;b=0x4bf;s=a+b;cout<<"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;飛例1-19以不同數制輸出兩介數的和華南理工大學計算機學院周靄如2025#include<iostream>#include<iomanip>using

namespace

std;int

main(){inta,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cout<<"八

"

;cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;

//計算兩個十進制數的和

cout<<"十

";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;I/

以十進制顯示結果

a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;}華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和#include<iostream>#include<iomanip>using

namespace

std;int

main(){inta,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cout<<"八

"

;cout<<oct<<a<<"+"<<b<<"="<<s<<endl;a=239;b=5618;s=a+b;cout<<"十進制";cout<<dec<<a<<"+"<<b<<"="<<s<<endl;a=0x1a3e

;b=0x4bf;s=a+b;//

計算兩個十六進制數的和

cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<s<<endl;//

以十六進制顯示結果}華南理工大學計算機學院周靄如2025例1-19以不同數制輸出兩介數的和1/包含格式輸出文件a,

b,s單元中存儲的數據形態與制式有關鳴?亞示基數符1

0

算兩個八進制數的和N

C:\WINDOWS\system32\cmd.exe<

01137+023362=024521//

239+5618=5857十

0×1

a3e+0×4bf=0x1efd請按任意鍵繼續.a=239;b=5618;s=a+b;cout<<"十

";cout<<dec<<a<<"+"<<b<<="<

a=0x1a3e;b=0x4bf;s=a+b;cout<<

"十六進制";cout<<hex<<a<<"+"<<b<<"="<<#include<iostream>#include<iomanip>using

namespace

std;int

main(){inta,b,s;cout.setf(ios::showbase);a=01137;b=023362;s=a+b;cou

t<<"八

";cout<<0ct<<a<<"+"<<b<<"="<<s<<endl;

//以八進制顯示結果例1-19以不同數制輸出兩介數的和//計算兩個十進制數的和華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如a

=10a=10;i++i++;X

-

y;{t=a;a=b;b=t;};華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如a=10a

=10;i++i++;X-y;{t=a;a=b;b=t;}賦值表達式華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如a

=10a=10;i++i++;X-y;{t=a;a=b;b=t;};華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如表達式a

=10a=10;i

++i++;X-y;{t=a;a=b;b=t;}華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如語句a

=10a=10;i++i++;X-y;{t=a;a=b;b=t;}華南理工大學計算機學院周靄如20251.6.3

表達式語句任何表達式加上一個分號成表達式語句例如a

=10a=10;i++i++;{t=a;a=b;b=t;}合法語句沒有操作意義華南理工大學計算機學院周靄如2025例如a

=10a=10;i++i++;X

-y;{

t=a

;a=b;b=t;}1.6.3

表達式語句任何表達式加上一個分號成表達式語句華南理工大學計算機學院周靄如2025語句塊1.6.3

表達式語句任何表達式加上一個分號成表達式語句例如a

=10a=10;i++i++;X

-

y;{t=a;a=b;b=t;}華南理工大學計算機學院周靄如2025空語句華南理工大學計算機學院周靄如2025小結程序主要功能是描述數據和處理數據。數據表現為常量和變量。所有的常量、變量都屬于某種數據類型。類型決定了數據的操作方式。>

對數據的讀寫通過內存訪問實現。C++提供名訪問和地址訪問方式。可以通過指針變量間址訪問所指對象。引用是對象的別名。用引用訪問對象與名訪問方式一樣。關鍵字const

用于約束對象為只讀。>

運算符表示了系統提供對基本數據的操作。表達式是由常量、變量和運算符連結起來,表達一個計算值的式子。C++用標準流對象實現數據的輸入和輸出。輸入語句,輸出語句和表達式語句可以構成順序執行的簡單程序。華南理工大學計算機學院周靄如2025華南理工大學計算機學院周靄如2025華南理工大學計算機學院周靄如20252.1

選擇控制2.2

循環控制2.3

判斷表達式的使用2.4

轉向語句

小結第2章程序控制結構第2章程序控制結構語句是程序的基本語法成分。程序設計語言的語句按功能可以分成三類:聲明語句

指示編譯器分配內存,或者提供程序連接信息操作語句

描述對數據的處理控制語句

用于控制程序的執行流程。所有程序都只能包含三種控制結構:順序結構、選擇結構和循環結構2.1選擇控制對給定的條件進行判斷,并根據判斷的結果選擇不同的操作比較條件運算條件運算表達式根據判斷條件,決定表達式的值不改變程序語句執行流程華南理工大學計算機學院周靄如20252.1.1

if語句1.if

語句的形式和執行流程語句形式(1)if(

表達式)

語句;執

行流程true(

非0)語

句華南理工大學計算機學院周靄如2025false(O)表達式2.1.1

if語句1.if

語句的形式和執行流程語句形式(1)if(

表達式)

語句;執

行流程true

(非0)語

句華南理工大學計算機學院周靄如2025false(O)表達式2.1.1

if語句1.if

語句的形式和執行流程語句形式(1)if(

表達式)

語句;執

行流程false

(O)表達式true(非0)語

句華南理工大學計算機學院周靄如20252.1.1

if語句例::max=a;if(b>a)max

=b;cout<<"max="<<max<<endl;53華南理工大學計算機學院周靄如2025maXba●if(b>a)max=b;cout<<"max="<<max<<endl;3

b

5maX

32.1.1

if語句例:max

=a;華南理工大學計算機學院周靄如2025a3

b

5maX

32.1.1

if語句例:amax

=a;max=b;cout<<"max="<<max<<endl;if(b>a)華南理工大學計算機學院周靄如2025amax

=a;if(b>a)2.1.1

if語句例:max=b;cout

<<"max="<<max<<endl;3maX華南理工大學計算機學院周靄如2025amax

=a;if(b>a)2.1.1

if語句例:max=b;cout

<<"max="<<max<<endl;3maX華南理工大學計算機學院周靄如2025a

3

b

5maX

52.1.1

if語句例:max=5cout<<"max="<<max<<endl;max

=a;if(b>a)max

=b;華南理工大學計算機學院周靄如2025輸出2.1.1

if語句例::max=a;if(b>a)max

=b;cout<<"max="<<max<<endl;37華南理工大學計算機學院周靄如2025maXba●if(b>a)max=b;cout<<"max="<<max<<endl;7

b

3maX

72.1.1

if語句例:max

=a;華南理工大學計算機學院周靄如2025a7

b

3maX

72.1.1

if語句例:amax

=a;max=b;cout<<"max="<<max<<endl;if(b>a)華南理工大學計算機學院周靄如20252.1.1

if語句例:a7

3max=7cout<<"max="<<max<<endl;max

=a;if(b>a)max

=b;華南理工大學計算機學院周靄如2025maX

7輸出執行流程false

(0)語

21

、if

語句的形式和執行流程語句形式(2)if(

表達式)

語句1;else

語句2

;2.1.1

if語句true

(非0)華南理工大學計算機學院周靄如2025語句1表達式1

、if

語句的形式和執行流程語句形式(2)if(

表達式)

語句1;else

語句2

;true(

0語句1false

(0)語

22.1.1

if語句華南理工大學計算機學院周靄如2025執行流程表達式1

、if

語句的形式和執行流程語句形式(2)if(

表達式)

語句1;else

語句2

;true(

0語

1false(O)語句22.1.1

if語句華南理工大學計算機學院周靄如2025執行流程表達式max=b;else

max=a;cout<<"max="<<max<<endl;2.1.1

if語句例::if(b>a)53華南理工大學計算機學院周靄如2025maXbamax=b;else

max=a;cout<<"max="<<max<<endl;2.1.1

if語句例:if(b>a)3maX華南理工大學計算機學院周靄如2025b

5a2.1.1

if語句例:else

max=a;cout<<"max="<<max<<endl;max=b;aif(b>a)3maX華南理工大學計算機學院周靄如20252.1.1

if語句例:a

3b5if(b>a)max=b;max

5else

max=a;cout<<"max="<<max<<endl;輸出

max=5

華南理工大學計算機學院周靄如2025max=b;else

max=a;cout<<"max="<<max<<endl;2.1.1

if語句例:if(b>a)7maX華南理工大學計算機學院周靄如2025b

3aaif(b>a)max

=b;2.1.1

if語句例:elsemax=a;cout<<"max="<<max<<endl;b77maX華南理工大學計算機學院周靄如20253a

7

bif(b>a)max=b;max

7else

max=a;cout<<"max="<<max<<endl;輸出2.1.1

if語句例:華南理工大學計算機學院周靄如2025max=73例:

aif(b>a)max=b;elsemax=a;cout<<"max="<<max<<endl;輸出max=7b72.1.1

if語句7max華南理工大學計算機學院周靄如202532.1.1

if語句2、if語句的嵌套if

語句中的執行語句如果又是另一個if

語句,稱為嵌套if

語句if與

else的配對關系:

C++

規定

,else

總是與它接近的if

配對使用復合語句,可以改變條件語句的執行流程華南理工大學計算機學院周靄如20252.1.1

if語句例2-1

編寫程序計算貨物運費。設貨物運費每噸單價

p

(元)與運輸距離

s(

公里)之間有如下關系:輸入要托運的貨物重量為w噸,托運距離s

公里,計算總運費t:t=p*w*s華南理工大學計算機學院周靄如2025falsefalseS<300?trueS<400?trueP=25P=22.5t=p*W*S2.1.1

if語句S<100?trueP=30控制流圖falseP=20falseS<200?trueP=27.5華南理工大學計算機學院周靄如2025else

if(s<200)p=27.5;t

=

p

*W

*Selseif(s<300)p=25;else

if(s<400)p=22.5;elsep=20;t=p*w*s;cout<<"The

cost

is:"<<setprecision(2)<<t<<'$'<<endl;2.1.1

if語句//例2-1計算貨物運費#include

<iostream>#include<iomanip>using

namespace

std;int

main(){double

t,p,cout<<"Please

mpurccin>>w;cout<<"Please

inputcin>>s;if(s<100)p=30;想一想:幾個else

分支語句的次序可以改變嗎?S<400?falseP

=

20distsnce(kilome○)華南理工大學計算機學院周靄如2025trueP=

22.5S<100

2P

=25false2.1.1

if語句//例2-1計算貨物運費#include

<iostream>#include<iomanip>using

namespace

std;int

main(){doublet,p,w,s;cout<<"Please

input

weight(ton):";cin>>w;cout<<"Please

input

distsnce(kilo-cin>>s;if(s<100)p=30;elseif(s<200)p=27.5;else

if(s<300)p=25;else

if(s<400)p=22elsep=20;例如:cin

>>s;if(s<300

)p=25;else

if(s<100)p=30;elseif(s<400

)p=22.5;else

if(s<200)p=27.5;else

p=20;t=p*w*s;若輸入s:

150輸出t

值等于多少?為什么?t=p*w*s;cout<<"The

cost

is:"<<setprecision(2)<<t<<'$'<<endl;華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。解法一數據排序。先找出最小值,放在a中,然后找次小值,放在b中

:1.

a

、b

進行比較,把小值放于a;

if

a>ba?bI/a<

b2.

a、c

進行比較,把小值放于a;if

a>c

a?CIIa

<c,a<b3.

b、c

進行比較,把小值放于b;if

b>c

b?c

II

a<b&&b<c4.

輸出a,b,c

的值。華南理工大學計算機學院周靄如2025b

5ba>C:a?Cb

7b>c:b?cb

57a>b:a?b522.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。a

<ba<b,a<ca<b&&b<cCCCaaaa華南理工大學計算機學院周靄如20252572.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。#include

<iostream>using

namespace

std;int

main(){int

a,b,c,t;cout<<"Please

input

three

integer

numbecin>>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;}cout<<a<<""<<b<<""<<c<<endl;注意語句塊結構華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。#include<iostream>using

namespace

std;int

main(){inta,b,c,t;cout<<"Please

input

three

integer

numbers:cin>>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

;}cout<<a<<""<<b<<""<<c<<endl;注意語句塊結構華南理工大學計算機學院周靄如20253

個數的6種可能排列方式:·a<b<ca

<b&&b<c·a<c<ba<c&&c<b·

b<a<c

b<a&&a<c·

b<c<a

b<c&&c<a·c<a<bc<a&&a<b·c<b<a

c<b&&b<a2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:可以直接用6個if語句寫出程序華南理工大學計算機學院周靄如20253

個數的6種可能排列方式:·a<b<ca

<b&&b<c·a<c<ba<c&&c<b·

b<a<cb<a&&a<c·

b<c<a

b<c&&c<a·c<a<bc<a&&a<b·c<b<a

c<b&&b<a2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。解法二

改變輸出順序:最壞情況要做8

個關系運算和

3個邏輯運算華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。解法二

改變輸出順序:最壞情況要做a

<

b&&b<ca

<

c&&c<bb

<a&&

a

<

c

b<c

&&c<a

c

<

a

&&

a<

b

c

<

b&&b

<

a·a<b<c·a<c<b·b<a<c·b<c<a·c<a<b·

c<b<a8

個關系運算和

3個邏輯運算3

個數的6種可能排列方式:華南理工大學計算機學院周靄如2025解法二

改變輸出順序:3

個數的6種可能排列方式:·a<b<ca

<b&&b<c·a<c<ba<c&&c<b·

b<a<cb<a&&a<c·

b<c<a

b<c&&c<a·c<a<bc<a&&a<b·c<b<a

c<b&&b<a2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。最好情況要做2個關系運算和1

個邏輯運算華南理工大學計算機學院周靄如2025解法二

改變輸出順序:3

個數的6種可能排列方式:·

a<b<c

a

<

b&&

b<

c·a<c<b

a<c&&c<b·b<a<c

b<a&&a<c·b<

c<a

b<c&&c<a·c<a<b

c<a&&a

<b·c<b<a

c<b&&b<a2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。最好情況要做2個關系運算和1

個邏輯運算華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:3

個數的6種可能排列方式:·a<b<ca

<b&&b<c·a<c<ba<c&&c<b·

b<a<c

b<a&&a<c·

b<c<a

b<c&&c<a·c<a<bc<a&&a<b·c<b<a

c<b&&b<a優化算法首先分析a,b

的順序華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:3

個數的6種可能排列方式:·

a

<b

<C

a

<b&&b<c·

a

<c<

ba<c&&c<

b·b<a<c

b<a&&a<c·b<c<a

b<c&&c<a·c<a

<b

c<a

&&a<

b·c<b<a

c<b&&b<a首先分析a,b

的順序然后分析c

的位置優化算法華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:3

個數的6種可能排列方式:·

a

<

b(<

a

<c<

b

a

<c&&c<

b·b<a<c

b<a&&a<c·b<c<a

b<c&&c<a·c<

a

<b

c<

a&&a<

b·c<b<a

c<b&&b

<a優化算法首先分析a,b

的順序然后分析c

的位置華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:3

個數的6種可能排列方式:·

a

<

b<

c

a

<

b

&&b<

a

<c<

b

a

<c&&c<

b<a<c

b<a&&a<c·b<c<ab<c&&c

<a

(C<

a<

b

C<

a&&a<b·c<b<a

c<b&&b<

a優化算法首先分析a,b

的順序然后分析c

的位置c<a<b華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:3

個數的6種可能排列方式:·

a

<b

<c

a

<b

&&b<

a(<c

<baK

c&&c<

b·b<a<c

b<a&&a<c·b<c<ab<c&&c<a·C<a

<

bC<

a

&&a<b·c<b<ac<b&&b<a優化算法首先分析a,b

的順序然后分析c

的位置a<

c<b華南理工大學計算機學院周靄如20252.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:true

trueb,c,a

b,a,c

a,b,

c

a,c,ba

bfalsea<c?最壞情況做3次關系運算trueb<c?truefalseb<c?falsetrueb

aa<c?華南理工大學計算機學院周靄如2025falsefalsea<b?2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:falsefalseb<c?truec,b,ab,c,atruea,

b,

c

a,c,b

c,a,b最壞情況做3次關系運算true

a

bb<c?trueb

aa<c?b,a,cfalsetruefalsea<c?華南理工大學計算機學院周靄如2025falsea<b?2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:trueabb<c?

falsetruea<c?truefalse

a<b?true最好情況做2次關系運算falseb<c?trueb,c,a

b,a,cb

aa<c?a,

b,

c

a,c,b華南理工大學計算機學院周靄如2025falsefalse2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。

解法二

改變輸出順序:falseb<c?trueb,c,a最好情況做2次關系運算falsea<c?trueb,a,ca,b,c

a,c,bb<c?t

ruefalse

a<b?b

aa<c?華南理工大學計算機學院周靄如2025true

abfalsefalsetruecout<"Please

input

thre

integer

numbers:";

cin

>>a>>b>>c;if(a<b)if(b<c)cout<<a<<b<<c<<endl;else

if(a<c)cout<<a

<<c<<b<<endl;else

cout<<c<<a<<b<<endl;else

if(a<c)cout<<b<<a<<c<<endl;else

if(b<c)cout<<b<<c<<a<<endl;else

cout

<<c<<b<<a<<endl;解法二

改變輸出順序:#include<iostream>usingnamespacestd;intmain()

false{int

a,b,c;2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。注意if-

else的匹配tr

ue

a<

c

?trueb

a

falsea

<

c?truefalsetrue華南理工大學計算機學院周靄如2025false2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。解法二

改變輸出順序:b

a

false#include

<iostream>

a<b?using

namespace

std;

falseint

main()falsetrue{inta,b,c;

truecout<"Please

input

thre

integer

numbers:";

cin

>>a>>b>>c;(a<b)if(b<c)cout<<a<<b<<c<<endl;else

if(a<c)cout<<a

<<c<<b<<endl;else

cout<<c<<a<<b<<endl;else

if(a<c)cout<<b<<a<<c<<endl;else

if(b<c)cout<<b<<c<<a<<endl;else

cout<<c<<b<<a<<endl;falsefalsetruetrue

abb<

c

?true華南理工大學計算機學院周靄如2025cout<"Please

input

thre

integer

numbers:";

cin

>>a>>b>>c;f(a<b)if

(b<c)cout<<a<<b<<c<<endl;else

if(a<c)cout<<a<<c<<b<<endl;else

cout<<c<<a<<b<<endl;elseif(a<c)cout<<b<<a<<c<<endl;elseif(b<c)cout<<b<<c<<a<<endl;elsecout<<c<<b<<a<<endl;解法二

改變輸出順序:#include<iostream>usingnamespacestd;int

main(

false{int

a,b,c;2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。falsefalsetruefalse

a<b?truetrueb<c?truefalsetrue華南理工大學計算機學院周靄如2025b

aa<c?cout<"Please

input

thre

integer

numbers:";

cin

>>a>>b>>c;f(a<b)if

(b<c)cout<<a<<b<<c<<endl;elseif(a<c)cout<<a<<c<<b<<endl;elsecout<<c<<a

<<b<<endl;elseif(a<c)cout<<b<<a<<c<<endl;elseif(b<c)cout<<b<<c<<a<<endl;elsecout<<c<<b<<a

<<endl;解法二

改變輸出順序:#include<iostream>usingnamespacestd;int

main(

false{int

a,b,c;2.1.1

if語句例2-2

輸入三個整數,按從小到大順序輸出。a

bfalsetruefalse

a<b?truefalseb<c?truetrueb<c?true華南理工大學計算機學院周靄如2025b

aa<c?false2.1.1

if語句2、述語句的嵌套分析S1

和S2的執行條件:if(E1)if(E2)S1else

S2if(E1){

if(E2)S1

}else

S2E1&&E2E1&&!E2注意括號的作用E1&&E2!

E

1執行S1執行S2執行S1執行

S2華南理工大學計算機學院周靄如20253.

應用舉例(1)

把輸入字符轉換為小寫字母。對輸入字符進行判斷,如果是大寫

字母,則轉換為小寫字母;否則,不轉換。//例2-3#include<iostream>using

namespace

std;int

main(){char

ch;cout

<<"ch=";cin>>ch;if

(ch>='A'&&ch<='Z')ch

+=32;cout<<ch<<endl;華南理工大學計算機學院周靄如2025//例2-3#include

<iostream>using

namespace

std;int

main(){charch;cout<<"ch=";cin>>ch;if(ch>='A'&&ch<='Z')

ch+=32;cout<<ch<<endl;3.

應用舉例(1)

把輸入字符轉換為小寫字母。對輸入字符進行判斷,如果是大寫字母,則轉換為小寫字母;否則,不轉換。輸入大寫字母華南理工大學計算機學院周靄如2025//例2-3#include

<iostream>using

namespace

std;int

main(){charch;cout<<"ch=";cin>>ch;if(ch>='A'&&ch<='Z')

ch+=32;cout<<ch<<endl;3.

應用舉例(1)

把輸入字符轉換為小寫字母。對輸入字符進行判斷,如果是大寫字母,則轉換為小寫字母;否則,不轉換。計算ASCII碼偏移值華南理工大學計算機學院周靄如20253.

應用舉例(1)

把輸入字符轉換為小寫字母。對輸入字符進行判斷,如果是大寫字母,則轉換為小寫字母;否則,不轉換。//例2-3#include<iostream>using

namespace

std;int

main(){

char

ch;cout<<"ch=";cin>>ch;if(ch>='A'&&ch<='Z')chcout

<<ch<<endl;ch

=BPressany

key

to

continue_+=32;華南理工大學計算機學院周靄如2025//例2-3#include

<iostream>usingnamespace

std;int

main(){charch;改寫為條件表達式ch=(ch>='A'&&ch<='Z')?ch+32:ch;cout<<"ch/=";cin>>ch/,3.

應用舉例(1)

把輸入字符轉換為小寫字母。對輸入字符進行判斷,如果是大寫字母,則轉換為小寫字母;否則,不轉換。if(ch>='A'&&ch<='Z

')ch+=32;cout<<ch<<endl;華南理工大學計算機學院周靄如2025①

當a=0時,方程不是二次方程②

當b2-4ac=0時,有兩個相同的實根:③

當b2-4ac>0

時,有兩個不同的實根:④

當b2-4ac<0時,有兩個共軛復根:3.

應用舉例(2)

求一元二次方程ax2+bx+c=0

的根。求根公式:華南理工大學計算機學院周靄如2025#include<iostream>

//例2-4#include

<cmath>using

namespace

std;int

main(){doublea,b,c,d,x1,x2,rp,ip;cout<<"a,b,c=";cin>>a>>b>>c;if

(fabs(a)<=1e-8)cout<<"It

is

not

quadratic."<<endl;else{d=b*b-4*a*c;if(fabs(d)<=1e-8)cout<<"Ithastwoequalrealroots:"<<-b/(2*a)<<endl;

else

if(d>1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"Ithastwodistinctrealroots:"<<x1<<"and"<<x2<<endl;

}else{rp=-b/(2*a);ip=sqrt(-d)/(2*a);cout

<<"It

has

two

complex

roots:"<<endl;cout<<rp<<"+"<<ip<<"i"<<endl;cout<<rp<<"-"<<ip<<"i"<<endl;華南理工大學計算機學院周靄如2025}if(fabs(d)<=1e-8)cout<<"It

has

two

equal

real

roots:"<<-b/(2*a)<<endl;else

if(d>1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"It

has

two

distinct

real

roots:"<<x1<<"and

"<<x2<<endl;else{rp=-b/(2*a);ip=sqrt(-d)/(2*a);cout<<"It

has

two

complex

roots:"<<endl;cout<<rp<<"+"<<ip<<"i"<<endl;cout<<rp<<"-"<<ip<<"i"<<endl;#include

<iostream>

//例2-4#include<cmath>using

namespace

std;int

main(){

doublea,b,c,d,x1,x2,rp,ip;

cout

<<"a,b,c=";

cin>>a>>b>>c;

if(fabs(a)<=1e-8)cout<<"It

is

not

quadratic."<<endl;else{d=b*b-4*a*c;華南理工大學計算機學院周靄如2025數據說明#include

<iostream>

//例2-4#include<cmath>

提示并輸入系數using

namespace

std;int

main(){double

a,b,c,d,x1,x2,rp,ip;cout

<<"a,b,c

=";

cin>>a>>b>>c;if(fabs(a)<=1e-8)cout<<"It

is

not

quadratic."<<endl;else{d=b*b-4*a*c;if(fabs(d)<=1e-8)cout<<"It

has

two

equal

real

roots:"<<-b/(2*a)<<endl;else

if(d>1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"It

has

two

distinct

real

roots:"<<x1<<"and

"<<x2<<endl;}else{rp=-b/(2*a);ip=sqrt(-d)/(2*a);cout<<"It

has

two

complex

roots:"<<endl;cout<<rp<<"+"<<ip<<"i"<<endl;cout<<rp<<"-"<<ip<<"i"<<endl;華南理工大學計算機學院周靄如2025}#include<cmath>using

namespace

std;

不是二次方程int

main(){double

a,b,c,d,x1,x2,rp,ip;cout<<"a,b,c=";cin>≥a>>b>>c;if(fabs(a)<=1e-

8)cout

<<"It

isnot

quadratic."<<

endl;else{d=b*b-4*a*c;if(fabs(d)<=1e-8)cout<<"It

has

two

equal

real

roots:"<<-b/(2*a)<<endl;else

if(d>1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"It

has

two

distinct

real

r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論