Tìm phần tử lớn nhất trong mảng C++

Chỉ dẫn cách tìm phần tử trong mảng C++. Bạn sẽ học được cách tìm phần tử lớn nhất trong mảng C++, cách tìm địa điểm phần tử lớn nhất trong mảng C++, cách tìm phần tử lớn thứ hai trong mảng C++, cũng như cách tìm phần tử chẵn lớn nhất trong mảng sau bài học này.

Tìm phần tử lớn nhất trong mảng C++

Để tìm phần tử lớn nhất trong mảng C++, tất cả chúng ta sử dụng tới logic mà Kiyoshi đã chỉ dẫn trong bài: Tìm max & min trong mảng C++

Sáng kiến ở giai đoạn này là giả sử max (giá trị lớn nhất của mảng) là số trước hết của mảng. Tất cả chúng ta sẽ lấy lần lượt các số còn sót lại trong mảng đem so sánh với max, nếu số này lớn hơn max thì đổi giá trị của max thành số đó. & làm như vậy cho tới số cuối cùng trong mảng được kiểm soát thì sẽ ra phần tử lớn nhất trong mảng ban đầu.

& tất cả chúng ta viết hàm tìm phần tử lớn nhất trong mảng C++ trong chương trình như sau:



using

namespace

std

;




void

maxElement

(

const

int

*

array

,

size_t

size)

{



assert(

array

!=

NULL

);


assert(size >=

1

);




int

max =

array

[

];




for

(

size_t

i =

1

; i < size; ++i) {


if

(max <

array

[i]) {


max =

array

[i];


}


}


cout

<<

"max= "

<< max;


}



int

main

()

{


int

array

[

100

], n;


cout

<<

">>Nhap so phan tu: "

;


cin

>> n;



cout

<<

">>Nhap phan tu:n"

;


for

(

int

i =

; i < n; i++)

cin

>>

array

[i];




maxElement(

array

,n);



return

;


}


Kết quả phép tìm phần tử lớn nhất trong mảng C++ như sau:

>>Nhap so phan tu: 6


>>Nhap phan tu:


2 4 98 23 0 7


max= 98


Tìm địa điểm phần tử lớn nhất trong mảng C++

Tất cả chúng ta cũng có thể đổi khác hàm ở trên & tìm địa điểm phần tử lớn nhất trong mảng C++, bằng cách thay vì trả về giá trị của phần tử lớn nhất tìm ra thì tất cả chúng ta sẽ trả về cả index của phần tử đó.

Xem Thêm  once created

& tất cả chúng ta viết hàm tìm địa điểm phần tử lớn nhất trong mảng C++ trong chương trình như sau:



using

namespace

std

;



void

maxElement

(

const

int

*

array

,

size_t

size)

{



assert(

array

!=

NULL

);


assert(size >=

1

);




int

max =

array

[

];


int

max_index=

;



for

(

size_t

i =

1

; i < size; ++i) {


if

(max <

array

[i]) {


max =

array

[i];


max_index =i;


}


}


cout

<<

"Phan tu lon nhat= "

<< max <<

endl

;


cout

<<

"Vi tri phan tu lon nhat= "

<< max_index;


}



int

main

()

{


int

array

[

100

], n;


cout

<<

">>Nhap so phan tu: "

;


cin

>> n;



cout

<<

">>Nhap phan tu:n"

;


for

(

int

i =

; i < n; i++)

cin

>>

array

[i];




maxElement(

array

,n);



return

;


}


Kết quả phép tìm phần tử lớn nhất trong mảng C++ như sau:

>>Nhap so phan tu: 6


>>Nhap phan tu:


2 4 98 23 0 7


Phan tu lon nhat= 98


Vi tri phan tu lon nhat= 2


Tìm phần tử lớn thứ hai trong mảng C++

Để tìm phần tử lớn thứ hai trong mảng C++, tất cả chúng ta sẽ dùng tới công thức Tìm phần tử lớn nhất & nhỏ nhất trong mảng C++ bằng cách xếp đặt mảng mà Kiyoshi đã chỉ dẫn trong bài: Tìm max & min trong mảng C++

Sáng kiến ở giai đoạn này là tất cả chúng ta sẽ xếp đặt mảng theo thứ tự giảm dần. & sau thời điểm xếp đặt thì phần tử lớn nhất mảng là phần tử trước hết, & phần tử lớn thứ 2 chính là phần tử đứng thứ 2 trong mảng.

Một cách tổng quát thì tất cả chúng ta cũng có thể tìm phần tử lớn thứ n trong mảng bằng công thức xếp đặt này.

Xem Thêm  sw

Về xếp đặt mảng trong C++ thì tất cả chúng ta sẽ dùng tới công thức mà Kiyoshi đã chỉ dẫn trong bài: Sắp đặt mảng trong C++

Sau đây là chẳng hạn về cách tìm phần tử lớn thứ hai trong mảng C++ bằng cách xếp đặt mảng giảm dần.



using

namespace

std

;








int

compareIntDesc

(

const

void

* a,

const

void

* b)

{


int

aNum = *(

int

*)a;


int

bNum = *(

int

*)b;



return

bNum - aNum;


}



int

main

()

{


int

array

[] = {

5

,

4

,

7

,

2

,

8

,

7

,

3

};


int

length= SIZE_OF_ARRAY(

array

);




qsort(

array

, length,

sizeof

(

int

), compareIntDesc);





cout

<<

"Phan tu lon nhat trong mang= "

<<

array

[

] <<

endl

;


cout

<<

"Phan tu lon thu 2 trong mang= "

<<

array

[

1

];



return

;


}


Kết quả phép tìm phần tử lớn thứ hai trong mảng C++ như sau:

Phan tu lon nhat trong đưa= 8


Phan tu lon thu 2 trong đưa= 7


Tìm phần tử chẵn lớn nhất trong mảng

Tất cả chúng ta cũng có thể ứng dụng công thức tìm phần tử lớn nhất & nhỏ nhất trong mảng C++ bằng cách xếp đặt mảng ở trên để tìm phần tử chẵn lớn nhất trong mảng

Sáng kiến ở giai đoạn này là tất cả chúng ta sẽ xếp đặt mảng theo thứ tự giảm dần. & sau thời điểm xếp đặt thì các phần tử sẽ được xếp đặt theo thứ tự từ lớn nhất đến nhỏ nhất, tính từ đầu mảng. Khi đó, chỉ cần tất cả chúng ta tìm thấy phần tử chẵn trước hết tính từ đầu mảng, thì đó chính là phần tử chẵn lớn nhất trong mảng cần tìm.

Một cách tương đương thì tất cả chúng ta cũng có thể tìm phần tử lẻ lớn nhất trong mảng theo phương pháp này.

Xem Thêm  m22

Để kiểm soát một phần tử trong mảng là chẵn hay lẻ, tất cả chúng ta sẽ dùng tới một trong hai công thức mà Kiyoshi đã chỉ dẫn trong bài: Kiểm soát số chẵn lẻ trong C++

& để xếp đặt mảng trong C++ thì tất cả chúng ta sẽ dùng tới công thức mà Kiyoshi đã chỉ dẫn trong bài: Sắp đặt mảng trong C++

Sau đây là chẳng hạn về cách tìm phần tử phần tử chẵn lớn nhất & phần tử lẻ lớn nhất trong mảng bằng cách xếp đặt mảng giảm dần.



using

namespace

std

;







int

check_odd_even

(

int

n)

{





int

flag =

1

;


if

( n %

2

==

) flag=

;


return

flag;


}





int

compareIntDesc

(

const

void

* a,

const

void

* b)

{


int

aNum = *(

int

*)a;


int

bNum = *(

int

*)b;



return

bNum - aNum;


}



int

main

()

{


int

array

[] = {

5

,

4

,

7

,

2

,

8

,

7

,

3

};


int

length= SIZE_OF_ARRAY(

array

);




qsort(

array

, length,

sizeof

(

int

), compareIntDesc);




for

(

size_t

i =

; i < length; ++i) {


int

x =

array

[i];


int

test = check_odd_even(x);


if

(test ==

) {


cout

<<

"Phan tu chan lon nhat trong mang= "

<<

array

[i]<<

endl

;


break

;


}


}




for

(

size_t

i =

; i < length; ++i) {


int

x =

array

[i];


int

test = check_odd_even(x);


if

(test ==

1

) {


cout

<<

"Phan tu le lon nhat trong mang= "

<<

array

[i]<<

endl

;


break

;


}


}



return

;


}


Kết quả chương trình tìm phần tử phần tử chẵn lớn nhất & phần tử lẻ lớn nhất trong mảng như sau:

Phan tu chan lon nhat trong đưa= 8


Phan tu le lon nhat trong đưa= 7


Kết luận

Trên đây Kiyoshi đã chỉ dẫn bạn cách tìm phần tử lớn nhất trong mảng C++ rồi. Để nắm vững bài viết bài học hơn, bạn hãy thực hành viết lại các chẳng hạn của ngày bây giờ nhé.

& hãy cùng khám phá những học thức sâu hơn về C++ trong các bài học kế đến.

Viết một bình luận