C++程序設(shè)計(jì)教程第7版-1321-1540_第1頁
C++程序設(shè)計(jì)教程第7版-1321-1540_第2頁
C++程序設(shè)計(jì)教程第7版-1321-1540_第3頁
C++程序設(shè)計(jì)教程第7版-1321-1540_第4頁
C++程序設(shè)計(jì)教程第7版-1321-1540_第5頁
已閱讀5頁,還剩215頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

cin>>a[i][j];for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<setw(5)<<a[i][j];cout<<endl;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025//例4-9

訪問二維數(shù)組#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

訪問二維數(shù)組1

J

2華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組1J

3華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組2

J

0華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組2

J

1華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組2

J

2華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組2

J

3華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

訪問二維數(shù)組0

J

0華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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請按任意鍵繼續(xù)//例4-9

訪問二維數(shù)組0

J

0華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025a2.

以指針方式訪問二維數(shù)組從一維數(shù)組元素的地址關(guān)系可知:●數(shù)組名代表數(shù)組的首地址●

任一數(shù)組元素的地址,可以用數(shù)組名加偏移量表示

偏移量單位是數(shù)組元素的大小地址值a?&a[0]

a+1?&a[1]a+2?&a[2]:a+i?&a[i]以上結(jié)論可以推廣到多維數(shù)組,二維數(shù)組的每一個(gè)元素是同構(gòu)的一維數(shù)組元素值a[0]?*aa[1]?*(a+1)a[2]?*(a+2):a[i]?*(a+i)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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]華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025a[0]+1.*a+12.

以指針方式訪問二維數(shù)組二維數(shù)組名a是邏輯上的一個(gè)二級指針,a[i]

是一級指針用二維數(shù)組名引用基本類型時(shí),應(yīng)當(dāng)是二級引用,但不能

直接把二維數(shù)組名賦給二級指針變量,因?yàn)椴还躰

維數(shù)組,

數(shù)組名僅是內(nèi)存塊首地址a[3][5],**p2,*p1;//OK//OK//Error//Error例:intp1=*a;

p1=a[0];p2=a;pl=a;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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.

以指針方式訪問二維數(shù)組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]華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025●

曲2.

以指針方式訪問二維數(shù)組/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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組#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行元素的首地址華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組/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

個(gè)元素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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組//例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(bǔ)

賦給一級指針變量cout<<endl;for(int

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

j=0;j<5;j++)cout<<*(a[i]+j)<<"";cout<<endl;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組#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]

是數(shù)組元素值

不能賦給指針變量華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組/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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組//例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+)

對二維數(shù)組不同的處理方式

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

i=0;i<3;

i++){for(int

j=0;j

<5;j++)cout

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

<<endl;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20252.

以指針方式訪問二維數(shù)組/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<<請按任意鍵繼續(xù).0578923461華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4

數(shù)組作函數(shù)參數(shù)數(shù)組元素作參數(shù)的性質(zhì)與簡單變量相同數(shù)組名作參數(shù)傳遞地址數(shù)組元素和數(shù)組名都可以作為引用參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.1

向函數(shù)傳送數(shù)組元素//例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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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()傳值參數(shù){inti,a[3]={1,2,3};4.4.1

向函數(shù)傳送數(shù)組元素華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.1

向函數(shù)傳送數(shù)組元素//例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;}修改局部量華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

向函數(shù)傳送數(shù)組元素華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.2

數(shù)組名作函數(shù)參數(shù)//例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;廠華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025104.4.2

數(shù)組名作函數(shù)參數(shù)//

例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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025Ox0065FDDOnap4.4.2

數(shù)組名作函數(shù)參數(shù)//例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025Ox0065FDDO4.4.2

數(shù)組名作函數(shù)參數(shù)//例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù){

m+=*ap;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)

10

na

Ox0065FDD00x0065FDD4

apap

++;1

m0

1華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)1

m1

1華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù){

m+=*ap;3

m1

i華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025a

Ox0065FDD04.4.2

數(shù)組名作函數(shù)參數(shù)//例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

++;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025return

m;31mi4.4.2

數(shù)組名作函數(shù)參數(shù)//例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù){m+=*ap;6

m2

1華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025a

Ox0065FDD04.4.2

數(shù)組名作函數(shù)參數(shù)//例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)return

m;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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形參僅僅是一個(gè)普通指針等價(jià)于

int

*

ap8int

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

數(shù)組名作函數(shù)參數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20250×0065FDD0ap1

04.4.2

數(shù)組名作函數(shù)參數(shù)//

例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.2

數(shù)組名作函數(shù)參數(shù)//

例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.2

數(shù)組名作函數(shù)參數(shù)//

例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華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.2

數(shù)組名作函數(shù)參數(shù)//

例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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

數(shù)組名作函數(shù)參數(shù)//例4-12a

Ox0065FDD0#include

<iostream>using

namespace

std;int

sum

(const

{int

m=0;Qfor(int{m+=*ap;ap++;n)對數(shù)組元素int

ap[],inti=0;i<n;i++)1610華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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

分析程序的輸出結(jié)果#include<iostream>using

namespace

std;void

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

C:\WINDOW5\system32cmd.exesizeof

(b)sizeof

(b

p請按任意鍵繼續(xù).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;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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請按任意鍵繼續(xù).#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

分析程序的輸出結(jié)果華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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請按任意鍵繼續(xù).//例4-13

分析程序的輸出結(jié)果華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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;請按任意鍵繼續(xù).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有區(qū)別嗎?可以嗎?//例4-13

分析程序的輸出結(jié)果華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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請按任意鍵繼續(xù).//例4-13

分析程序的輸出結(jié)果華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20254.4.3

應(yīng)用舉例數(shù)據(jù)排序是指對數(shù)據(jù)按關(guān)鍵字大小重新整理按照排序的算法、時(shí)間空間效率,有許多種排序法

本節(jié)討論兩種簡單排序法:選擇排序法

冒泡排序法華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20251.

選擇排序法算法分析:按降序排列若一組整數(shù)放在數(shù)組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]之中找最大值華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如20251.

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

a[t]

a[i]交換*

細(xì)化尋找最大元素算法:每一趟尋找中,設(shè)變量t,記錄當(dāng)前最大元素下標(biāo):for(j=i+1;j<n;j++)if(a[j]>a[t])t=j;華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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(bǔ)

[

t]

與a[i]交換}4938659776ta[0

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

a[2]

a[3]a[4]a[1]a[1]華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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(bǔ)

[

t]與

a[i]

交換}4938659776j

t2

2a[0]a[1]

a[2]

a[3]a[4]a[2]a[2]a[0]a[0]華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2025>:101.

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

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

[

t]與

a[i]

交換

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

a[2]

a[3]a[4]a[3]a[3]a[2]a[2]華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如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(bǔ)

[

t]與

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論