C++程序设计教程第7版-1321-1540_第1页
C++程序设计教程第7版-1321-1540_第2页
C++程序设计教程第7版-1321-1540_第3页
C++程序设计教程第7版-1321-1540_第4页
C++程序设计教程第7版-1321-1540_第5页
已阅读5页,还剩215页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

cin>>a[i][j];for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;华南理工大学计算机学院周霭如2025//例4-9

访问二维数组#include

<iostream>

#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)1

J

2a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组1

J

2华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组1J

3华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组2

J

0华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组2

J

1华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组2

J

2华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;cin>>a[i][j];//例4-9

访问二维数组2

J

3华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)cin>>a[i][j];for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;for(j=0;j<4;j++)//例4-9

访问二维数组华南理工大学计算机学院周霭如20252

Jafor(j=0;j<4;j++)cin>>a[i][j];for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;#include

<iostream>#include

<iomanip>

using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i

++)//例4-9

访问二维数组华南理工大学计算机学院周霭如20253

Ja#include

<iostream>#include

<iomanip>using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)cin>>a[i][j];for

(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];

cout

<<

endl;T

C:\WINDOW5\system32\cmd.exe246813579101112//例4-9

访问二维数组0

J

0华南理工大学计算机学院周霭如2025a#include

<iostream>#include

<iomanip>using

namespace

std;intmain(){int

a[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)cin>>a[i][j];for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;NC:\WINDOW5\system32\cmd.exe246813579101112请按任意键继续//例4-9

访问二维数组0

J

0华南理工大学计算机学院周霭如2025a2.

以指针方式访问二维数组从一维数组元素的地址关系可知:●数组名代表数组的首地址●

任一数组元素的地址,可以用数组名加偏移量表示

偏移量单位是数组元素的大小地址值a⇔&a[0]

a+1⇔&a[1]a+2⇔&a[2]:a+i⇔&a[i]以上结论可以推广到多维数组,二维数组的每一个元素是同构的一维数组元素值a[0]⇔*aa[1]⇔*(a+1)a[2]⇔*(a+2):a[i]⇔*(a+i)华南理工大学计算机学院周霭如2025a

[0][0]a

[0][1]a[1][0]a

[1][1]a[2][0]a[2][1]*a[0]*(*

a+1)*a[1]*(*(a+1)+1a[0]a[1]*(a+2)a[2]100010081040104810801088aa+1

·a+2

-double

a

[3][5]华南理工大学计算机学院周霭如2025a[0]+1.*a+12.

以指针方式访问二维数组二维数组名a是逻辑上的一个二级指针,a[i]

是一级指针用二维数组名引用基本类型时,应当是二级引用,但不能

直接把二维数组名赋给二级指针变量,因为不管n

维数组,

数组名仅是内存块首地址a[3][5],**p2,*p1;//OK//OK//Error//Error例:intp1=*a;

p1=a[0];p2=a;pl=a;华南理工大学计算机学院周霭如202510001004*a+1⁰201024*(a+1)+2*(a+i)+j1030*(*(a+1)+2)*(*(a+i)+j)第0行第1列元素地址第1行第2列元素

地址第

i

第j

列元素地

第1行第2列元素的值第i行第j列元素的值2.

以指针方式访问二维数组inta[3][5]的表示形式:&a[0][1]

0]a

[1][1]&a[1][2]&a[i][j]a[1][2]a

[2][1]a[i][j]a[0]+1a[1]+2a[i]+j*(a[1]+2)*(a[i]+j)a

[0][0]a

[0][1]华南理工大学计算机学院周霭如2025●

曲2.

以指针方式访问二维数组/1例4-10#include<iostream>using

namespacestd;int

main(){int

a[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int*p;for(p=a[0];p<a[0]+15;p++)cout<<*p<<"";cout

<<endl;for(p=*a;p<*a+15;p++)cout<<*p<<"";cout

<<endl;for(inti=0;i<3;i++){for(intj=0;j<5;j++)cout

<<*(a[i]+j)<<"";cout

<<endl;华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组#include<iostream>using

namespace

std;int

main(){inta[3][5]={1,2,3,4,5.6.1,8,9,10,int*p;for

(p=a[09

p<a[0]+15;p++)cout<<*p<<"";cout<<endl;for(

p=*a

p<*a+15;p++)cout<<*p<<"";cout<<endl;for(int

i=0;i<3;i++){for(int

j=0;j<5;j++)cout<<*(a[i]+j)<<"";cout<<endl;//例4-10取第0行元素的首地址华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组/1例4-10#include<iostream>using

namespace

std;int

main(){inta[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int

*p;for(p=a[0];p<a[0]+15;p++)cout<<*p<<"";

第i

行第j

个元素cout<<endl;for(p=*a;p<*a+15;p++)cout<<*p<<"";cout<<endl;for(inti=0;i<3;i++){for(int

j=0;i<5;j++)cout<4

*(a[i]+j

<<"";cout<<endl;华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组//例4-10#include<iostream>using

namespace

std;int

main()

可以改为

p=a

吗?{int

a[3][5]={1,2,3,4,5.6,1,8,9,10int

*p;for(p=a[0

p<al0]+15;p++)cout<<*p<<";cout<<endl;

No!for(p=*a;

p<*a+15;

a是逻辑上的二级指针,cout<<*p<<"";

不能把a

赋给一级指针变量cout<<endl;for(int

i=0;i<3;i++){for(int

j=0;j<5;j++)cout<<*(a[i]+j)<<"";cout<<endl;华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组#include<iostream>using

namespace

std;int

main(){int

a[3][5]={1,2,3,4,5,67,8,9,int

*p;for

(p=a[0

cp<a[0]+15;p++)cout<<*p<<"

"cout<<endl;for(

p=*a

p<*a+15;p++)cout<<*p<<"";cout<<endl;for(int

i=0;i<3;i++){for(int

j=0;j<5;j++)cout<<*(a[i]+j)<<"";cout<<endl;//例4-10可以改为

p=a[0][0]

吗?No!a[0][0]

是数组元素值

不能赋给指针变量华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组/1例4-10#include<iostream>using

namespace

std;int

main()

可以改为

p=&a[0][0]吗?{int

a[3][5]={1,2,3,4,5,6,7,8,9,int

*p;for(p=a[0

;p<a[0]+15;p++)cout

<<*p<<"";cout<<endl{1,2,3,4,5,6,7,

];p<a[0]+15

<<

"

"

;

.for(p=*a

,p<*a+15;p++)cout<<*p<<"";cout<<endl;for(int

i=0;i<3;i++){for(int

j=0;j<5;j++)cout<<*(a[i]+j)<<"";cout<<endl;}1华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组//例4-10#include<iostream>using

namespace

std;int

main(){inta[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int

*p;for(p=a

[0];p<a[0]+15;p++)cout<<*p<<”";cout<<endl;

注意for(p=*a;p<*a+15;pt+)

对二维数组不同的处理方式

cout<<*p<<"";cout<<endl;for(int

i=0;i<3;

i++){for(int

j=0;j

<5;j++)cout

<<*(a[i]+j)<<"";cout

<<endl;华南理工大学计算机学院周霭如20252.

以指针方式访问二维数组/1例4-10#include<iostream>using

namespacestd;int

main(){int

a[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int*p;for(p=a[0];p<a[0]+15;p++)cout<<*p<<"";cout

<<endl;for(p=*a;p<*a+15;p++)cout<<*p<<""

·CNC:\WINDOWs\system32\cmd.exe

一回×cout

<<end

2

3

4

5

6

9

10

11

12

13

14

15for(int

i=1

23

5

6

7

8910

1213

14

15{for(int

1cout<

12

13

14

15cout<<请按任意键继续.0578923461华南理工大学计算机学院周霭如2025华南理工大学计算机学院周霭如20254.4

数组作函数参数数组元素作参数的性质与简单变量相同数组名作参数传递地址数组元素和数组名都可以作为引用参数华南理工大学计算机学院周霭如20254.4.1

向函数传送数组元素//例4-11#include<iomanip>#include<iostream>usingnamespacestd;voidfun(int,int,int);int

main(){inti,a[3]={1,2,3};fun(a[0],a[1],a[2]);for(i=0;i<3;i++)cout<<setw(4)<<a[i];cout

<<endl;}void

fun(int

a,int

b,int

c){a++;b++;c++;cout

<<setw(4)<<a<<setw(4)<<b<<setw(4)<<c<<endl;return;华南理工大学计算机学院周霭如2025fun(

a[0],a[1],a[2]

);for(i=0;i<3;i++)cout

k

setw(4)<<a[i];cout<<endl;void

fun(int

a,int

b,int

c){a++;b++;c++;cout<<setw(4)<<a<<setw(4)<<b<<setw(4)<<c<<endl;return;//例4-11#include<iomanip>#include<iostream>using

namespace

std;void

fun(int,int,int);int

main()传值参数{inti,a[3]={1,2,3};4.4.1

向函数传送数组元素华南理工大学计算机学院周霭如20254.4.1

向函数传送数组元素//例4-11#include<iomanip>#include<iostream>using

namespace

std;void

fun(int,int,int);int

main(){inti,a[3]={1,2,3};fun(a[0],a[1],a[2]);for(i=0;i<3;i++)cout<</setw(4)<<a[i];cout<<endl;b,int

c)```cpp}

;

[2]

)

;++

)

cout

<<

setw(

4

)```b

,

int

c

)<<setw(4)<<a<<setw(4)<<b<<setw(4)<<c<<endl;void

fun(int

a,int

{

a++;b++;c++;coutreturn;}修改局部量华南理工大学计算机学院周霭如2025}//例4-11#include<iomanip>#include<iostream>using

namespace

std;void

fun(int,int,int);int

main(){inti,a[3]={1,2,3};fun(a[0],a[1],a[2]);for(i=0;i<3;i++)cout<<setw(4)<<a[i];cout<<endl;}void

fun(int

a,int

b,int

c)

{

a++;b++;c++;cout

<<setw(4)<<a<<setw(4)<<b<<setw(4)<<c<<endl;return;4.4.1

向函数传送数组元素华南理工大学计算机学院周霭如20254.4.2

数组名作函数参数//例4-12#include<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;}return

m;}int

main(){int

a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;厂华南理工大学计算机学院周霭如2025return

m;int

main()int

a[10]={1

,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;//例4-12#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n)

{int

m=0;a

Ox0065FDD04for(int

i=0;i<n;i++){m+=*ap;ap++;4.4.2

数组名作函数参数华南理工大学计算机学院周霭如202510return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout

<<

"sum="<<sum(a,10)<<endl;//例4-12#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n)

{int

m=0;a

Ox0065FDD04for(int

i=0;i<n;i++){m+=*ap;ap++;4.4.2

数组名作函数参数华南理工大学计算机学院周霭如2025104.4.2

数组名作函数参数//

例4-12

a#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;10int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;华南理工大学计算机学院周霭如2025Ox0065FDDOnap4.4.2

数组名作函数参数//例4-12

a#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;10int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

nOx0065FDD0

ap华南理工大学计算机学院周霭如2025Ox0065FDDO4.4.2

数组名作函数参数//例4-12

a#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;10int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

n0x0065FDD0ap华南理工大学计算机学院周霭如2025Ox0065FDD0int

sum(int

ap[],int

n){

int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

n0x0065FDD0ap100

m//例4-12#include

<iostream>using

namespace

std;4.4.2

数组名作函数参数华南理工大学计算机学院周霭如2025a

Ox0065FDD0int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

n0x0065FDD0ap100

m0

1//例4-12#include

<iostream>using

namespace

std;4.4.2

数组名作函数参数华南理工大学计算机学院周霭如2025a

Ox0065FDD010

n0x0065FDD0ap101

m0

1ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++)//例4-12#include

<iostream>using

namespace

std;4.4.2

数组名作函数参数{

m+=*ap;华南理工大学计算机学院周霭如2025a

Ox0065FDD0//

例4-12#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n)

{int

m=0;for(int

i=0;i<n;i++){m+=*ap;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;return

m;104.4.2

数组名作函数参数

10

na

Ox0065FDD00x0065FDD4

apap

++;1

m0

1华南理工大学计算机学院周霭如202510

n0x0065FDD4

ap10//

例4-12#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n)

{int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;4.4.2

数组名作函数参数1

m1

1华南理工大学计算机学院周霭如2025a

Ox0065FDD010

n0x0065FDD4

ap10ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++)//例4-12#include

<iostream>using

namespace

std;4.4.2

数组名作函数参数{

m+=*ap;3

m1

i华南理工大学计算机学院周霭如2025a

Ox0065FDD04.4.2

数组名作函数参数//例4-12

a#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;10int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

nOx0065FDD00x0065FDD8

apap

++;华南理工大学计算机学院周霭如2025return

m;31mi4.4.2

数组名作函数参数//例4-12

a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10

n0x0065FDD8

ap103

m2

1华南理工大学计算机学院周霭如202510

n0x0065FDD8

ap10ap++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++)//例4-12#include

<iostream>using

namespace

std;4.4.2

数组名作函数参数{m+=*ap;6

m2

1华南理工大学计算机学院周霭如2025a

Ox0065FDD04.4.2

数组名作函数参数//例4-12

a#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;10

nOx0065FDD00x0065FDDCapint

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;return

m;10ap

++;6

m2

1华南理工大学计算机学院周霭如2025int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;//例4-12#include

<iostream>using

namespace

std;0x0065FDF8

ap55

m10

i4.4.2

数组名作函数参数return

m;华南理工大学计算机学院周霭如2025a

Ox0065FDD010

n10//例4-12#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n)

{int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;a

Ox0065FDD047int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout

<<

"sum="<<sum(a,10)<<endl;10国“℃:Atest\Debug{Cpp1.

exe”sum=55Press

any

key

to

continue4.4.2

数组名作函数参数华南理工大学计算机学院周霭如2025return

m;//

例4-12#include

<iostream>using

namespace

std;int

sumint

aplD,

int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;return

m;a

Ox0065FDD013形参仅仅是一个普通指针等价于

int

*

ap8int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;4.4.2

数组名作函数参数华南理工大学计算机学院周霭如20250×0065FDD0ap1

04.4.2

数组名作函数参数//

例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum(int

ap[]

,int

n){int

m=0;修改指针for(int

i=0;i<n;i++

是合法操作{m+=*ap;ap

++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;0×0065FDD0ap10华南理工大学计算机学院周霭如20254.4.2

数组名作函数参数//

例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum(int

ap[]

,int

n){int

m=0;修改指针for(int

i=0;i<n;i++

是合法操作{m+=*ap;ap

++;return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;0x0065FDD4ap610华南理工大学计算机学院周霭如20254.4.2

数组名作函数参数//

例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum(int

ap[],int

n){int

m=0;for(int

i=0;i<n;i++){m+=*ap;ap++;但

a

++return

m;

是非法操作int

main({int(

a[10

1={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;10x0065FDD4ap10华南理工大学计算机学院周霭如20254.4.2

数组名作函数参数//

例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum

(const

int

ap[],int

n){int

m=0;10x0065FDD4ap10i=0;i<n;i++)意义是什么?a[10]={1,2,3,4,5,6,7,8,9,10};for(int{m+=*ap;ap++;return

m;int

main(){intcout<<"sum="<<sum(a,10)<<endl;华南理工大学计算机学院周霭如2025只读访问return

m;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};cout<<"sum="<<sum(a,10)<<endl;4.4.2

数组名作函数参数//例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum

(const

{int

m=0;Qfor(int{m+=*ap;ap++;n)对数组元素int

ap[],inti=0;i<n;i++)1610华南理工大学计算机学院周霭如20250x0065FDD4

apint

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};double

b[10]={0.1,0.2,0.3,0.4,0.5,0.6,char

c[10]={'a','b','c','d','e','f,'g','h','i,j//例4-13

分析程序的输出结果#include<iostream>using

namespace

std;void

test(intap[],doublebp[],charcp[])N

C:\WINDOW5\system32cmd.exesizeof

(b)sizeof

(b

p请按任意键继续.cout<<"sizeof(a)="<<cout<<"sizeof(b)="<<cout<<"sizeof(c)="<<

test(

a

,b,c

);{cout<<"sizeof(ap)="<<cout<<"sizeof(bp)="<<cout<<"sizeof(cp)="<<sizeol

(a)<<endl;s1zeoi(b

)<<endl;sizeoiic1

<<endl;<<endl;<<endl;<<endl;华南理工大学计算机学院周霭如2025int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};double

b[10]={0.1,0.2,0.3,0.4,0.5,0.6,char

c[10]={'a','b','c','d','e','f,'g','h','i,jN

C:\WINDOW5\system32cmd.exesizeof

(b)sizeof

(b

p请按任意键继续.#include<iostream>using

namespace

std;void

test(intap[],doublebp[],charcp[])cout<<"sizeof(a)="<<cout<<"sizeof(b)="<<cout<<"sizeof(c)="<<

test(

a

,b,c

);{cout<<"sizeof(ap)="<<cout<<"sizeof(bp)="<<cout<<"sizeof(cp)="<<sizeol(a

)<<endl;sizeof(b)

<<endl;sizeot

ic1<<endl;<<endl;<<endl;<<endl;//例4-13

分析程序的输出结果华南理工大学计算机学院周霭如20250x0065FDD4

ap#include<iostream>using

namespace

std;void

test(int

ap[],double

bp[],char

cp[]){cout<<"sizeof(ap)="K

sizeof

(ap)

<endl;cout<<"sizeof(bp)="<<sizeof(bp)

<<endl;cout<<"sizeof(cp)="<<

sizeof(cp)

<<endl;int

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};double

b[10]={0.1,0.2,0.3,0.4,0.5,0.6,charc[10]={'a','b','c','d','e','f,'g,'h','i,jcout<<"sizeof(a)="≤sizeof

(a)×<endl;cout<<"sizeof(b)="<<

sizeof(b)<<endl;cout<<"sizeof(c)="<<sizeof(c)<<endl;test(

a,

b,c);sizeof(int*)0x0065FDD4

apsizeof(int[10])CNC:\WINDOWS\system32cmd.exe

si

zeof

(

a

)sizeof

(b)sizeof

(b

p请按任意键继续.//例4-13

分析程序的输出结果华南理工大学计算机学院周霭如2025charc[10]={'a','b','c','d','e','f,'g','h','i,jsizeof

(b)=cout<<"sizeof(a)="<<sizeof(a)<<endl;cout<<"sizeof(b)="<<sizeof(b)<<endl;cout<<"sizeof(c)="<<sizeof(c)<<endl;请按任意键继续.test(a,b,c);#include<iostream>using

namespace

std;void

test

(int*

ap,

double*bp,char*cp){cout<<"sizeof(ap)="<<sizeof(ap)<<endl;cout<<"sizeof(bp)="<<sizeof(bp)<<endl;cout<<"sizeof(cp)="<<sizeof(cp)<<endl;int

main(){

int*

a={1,2,3,4,5,6,7,8,9,10};double

b[10]={0.1,0.2,0.3,0.4,0.5,0.6,

CNC:\WINDOWS\system32\cmd.exe有区别吗?可以吗?//例4-13

分析程序的输出结果华南理工大学计算机学院周霭如2025int

main(){

int*

a={1,2,3,4,5,6,7,8,9,10};doubleb[10]={0.1,0.2,0.3,0.4,0.5,0.6,charc[10]={'a','b','c','d','e','f,'g','h','i,'jcout<<"sizeof(a)="<<sizeof(a)<<endl;cout<<"sizeof(b)="<<sizeof(b)<<endl;cout<<"sizeof(c)="<<sizeof(c)<<endl;test(a,b,c);#include<iostream>using

namespace

std;

Okvoid

test

(int*

ap,

double*bp,char*cp){cout<<"sizeof(ap)="<<sizeof(ap)<<endl;cout<<"sizeof(bp)="<<sizeof(bp)<<endl;cout<<"sizeof(cp)="<<sizeof(cp)<<endl;N

C:\WINDOW5\system32\cmd.exe

sizeof

(a):40sizeof

(

b)=80请按任意键继续.//例4-13

分析程序的输出结果华南理工大学计算机学院周霭如20254.4.3

应用举例数据排序是指对数据按关键字大小重新整理按照排序的算法、时间空间效率,有许多种排序法

本节讨论两种简单排序法:选择排序法

冒泡排序法华南理工大学计算机学院周霭如20251.

选择排序法算法分析:按降序排列若一组整数放在数组a[0],a[1],……,a[n-1]中,第一趟在a[0]~a[n-1]

找出最大值,放在a[0];第二趟在a[1]~a[n-1]

找出最大值,放在a[1];依此类推,直到从a[n-2]和a[n-1]之中找最大值华南理工大学计算机学院周霭如20251.

选择排序法算法描述:for(i=0;i<n-1;i++)*从a[j]到a[n-1]中找最大元素a[t];

a[t]

a[i]交换*

细化寻找最大元素算法:每一趟寻找中,设变量t,记录当前最大元素下标:for(j=i+1;j<n;j++)if(a[j]>a[t])t=j;华南理工大学计算机学院周霭如20251.

选择排序法for(i=0;i<n-1;i++)

//n=4{t=i;for(j=i+1;j<n;j++)if(a[j]>a[t])t=j;把a

[

t]

与a[i]交换}4938659776ta[0

]a[0]a[0]a[1]

a[2]

a[3]a[4]a[1]a[1]华南理工大学计算机学院周霭如2025<:j11.

选择排序法for(i=0;i<n-1;i++)

//n=4{t=i;for(j=i+1;j<n;j++)if(a[jl>a[t])

t=j;把a

[

t]与

a[i]

交换}4938659776j

t2

2a[0]a[1]

a[2]

a[3]a[4]a[2]a[2]a[0]a[0]华南理工大学计算机学院周霭如2025>:101.

选择排序法for(i=0;i<n-1;i++){t=i;for(j=i+1;j<n;j++)

if(a[jl>a[t])把a

[

t]与

a[i]

交换

}//n=4t=j;1jt4938659776a[0]a[1]

a[2]

a[3]a[4]a[3]a[3]a[2]a[2]华南理工大学计算机学院周霭如2025>:1.

选择排序法for(i=0;i<n-1;i++)

//n=4{t=i;for(j=i+1;j<n;j++)if(a[jl>a[t])

t=j;把a

[

t]与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论