In ra số chẵn lẻ trong mảng C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn thực hiện chương trình in ra số chẵn lẻ trong mảng C / C++. Đây là một chương trình áp dụng cách sử dụng hàm trong C / C++, vì vậy các bạn cần có kiến thức về hàm trước khi đi vào bài viết nhé.
Số chẵn là các số chia hết cho hai và các số lẻ thì không chia hết cho hai.
Ví dụ: Mình có một mảng Number = {1, 2, 3, 4, 5, 6, 7, 8}, các số chẵn trong mảng là {2, 4, 6, 8} và các số lẻ trong mảng là {1, 3, 5, 7}.
Vậy làm thế nào để viết chương trình in ra số chẵn và số lẻ trong mảng C / C++, hãy bắt đầu cùng mình ngay bây giờ thôi nhé.
In ra số chẵn lẻ trong mảng C / C++
Việc đầu tiên để in ra số chẵn lẻ trong mảng C / C++ đó là tạo hàm kiểm tra số chẵn lẻ với tham số được truyền vào. Hàm trả về true nếu số đó là số chẵn và trả về false nếu số đó là số lẻ.
Đơn giản ta chỉ cần lấy số đó và chia lấy dư cho 2. Nếu bằng 0 thì là số chẵn, ngược lại thì là số lẻ.
//tạo hàm kiểm tra số chãn lẻ với 1 tham số được truyền vào bool KTraChanLe(int n){ //nếu n chia hết cho 2 thì đây là số chẵn if(n % 2 == 0){ return true; } //ngược lại thì đây là số lẻ else return false; }
*Lưu ý: đối với chương trình C để sử dụng kiểu dữ liệu bool ta cần khai báo thư viện <stdbool.h> nhé.
Tiếp đến ta tạo thêm hàm in số chẵn và in số lẻ. Trong hàm ta sử dụng hai vòng lặp for tách biệt.
Vòng lặp for thứ nhất dùng để duyệt từng phần tử và in ra các số chẵn.
printf("\nCác số chẵn trong mảng là: "); for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == true)) { printf("%d ", a[i]); } }
Vòng lặp for thứ hai dùng để duyệt và in ra các số lẻ.
printf("\nCác số lẻ trong mảng là: "); for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == false)) { printf("%d ", a[i]); } }
Trong hàm main()
, ta yêu cầu người dùng nhập vào số lượng và giá trị cho các phần tử trong mảng. Sau đó gọi hàm in số chẵn và số lẻ để in ra màn hình.
//khai báo biến i sử dụng cho vòng lặp for //biến count là số lượng phần tử trong mảng int i, count; //yêu cầu người dùng nhập vào số lượng cho phần tử printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); //gán số lượng người dùng vào kích thước của mảng int number[count]; //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); //Gọi hàm inSoChanLe() để in các số chẵn lẻ trong mảng ra màn hình inSoChanLe(number, count);
Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngôn ngữ khác nhau C và C++, các bạn có thể tham khảo nhé.
Chương trình C:
#include<stdio.h> #include<math.h> #include<stdbool.h> //tạo hàm kiểm tra số chãn lẻ với 1 tham số được truyền vào bool KTraChanLe(int n){ //nếu n chia hết cho 2 thì đây là số chẵn if(n % 2 == 0){ return true; } //ngược lại thì đây là số lẻ else return false; } void inSoChanLe(int a[], int n) { // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng // cứ mỗi vòng lặp ta gọi hàm KTraChanLe() để kiểm tra phần tử đó printf("\nCác số chẵn trong mảng là: "); for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == true)) { printf("%d ", a[i]); } } printf("\nCác số lẻ trong mảng là: "); for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == false)) { printf("%d ", a[i]); } } } int main() { //khai báo biến i sử dụng cho vòng lặp for //biến count là số lượng phần tử trong mảng int i, count; //yêu cầu người dùng nhập vào số lượng cho phần tử printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); //gán số lượng người dùng vào kích thước của mảng int number[count]; //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); //Gọi hàm inSoChanLe() để in các số chẵn lẻ trong mảng ra màn hình inSoChanLe(number, count); printf("\n-----------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> #include <math.h> using namespace std; //tạo hàm kiểm tra số chãn lẻ với 1 tham số được truyền vào bool KTraChanLe(int n){ //nếu n chia hết cho 2 thì đây là số chẵn if(n % 2 == 0){ return true; } //ngược lại thì đây là số lẻ else return false; } void inSoChanLe(int a[], int n) { // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng // cứ mỗi vòng lặp ta gọi hàm KTraChanLe() để kiểm tra phần tử đó cout<<"\nCác số chẵn trong mảng là: "; for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == true)) { cout<<a[i]<<" "; } } cout<<"\nCác số lẻ trong mảng là: "; for(int i = 0; i < n; i++) { if((KTraChanLe(a[i]) == false)) { cout<<a[i]<<" "; } } } int main() { //khai báo biến i sử dụng cho vòng lặp for //biến count là số lượng phần tử trong mảng int i, count; //yêu cầu người dùng nhập vào số lượng cho phần tử cout << "Nhập số lương phần tử trong mảng:"; cin >> count; //gán số lượng người dùng vào kích thước của mảng int number[count]; //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng cout << "\nNhập giá trị cho từng phần tử trong mảng:\n"; for (i = 0; i < count; ++i) cin >> number[i]; //Gọi hàm inSoChanLe() để in các số chẵn lẻ trong mảng ra màn hình inSoChanLe(number, count); cout << "\n-----------------------------------\n"; cout << "Chương trình này được đăng tại codehow.net"; }
Kết quả
Như vậy là chúng ta đã cùng nhau thực hiện xong chương trình in ra số chẵn lẻ trong mảng C / C++. Các bạn có thể ghé thăm serries bài tập C / C++ để rèn luyện với nhiều dạng bài tập hơn cùng codehow nhé. Cảm ơn các bạn rất nhiều !!!