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ử đó.
& 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.
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.
Để 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.