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时,方程不是二次方程②

当b²-4ac=0时,有两个相同的实根:③

当b²-4ac>0

时,有两个不同的实根:④

当b²-4ac<0时,有两个共轭复根:3.

应用举例(2)

求一元二次方程ax²+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

提交评论