Bài toán: Kiểm tra mảng số nguyên có toàn là chữ số chẵn/le hay không ?
Input: mảng a có n phần tử
Xử lý: duyệt mảng, nếu có 1 số nào đó không chia hết cho 2 thì trả về -1, rồi thoát khỏi vòng lặp
Output: mảng không hoàn toàn chẵn -1, mảng toàn chẵn 1
Hàm kiểm tra số chẵn
int KiemTraToanChan(int a[], int n) { for( int i=0;i<n;i++) if(a[i]%2!=0) { return -1; break; } return 1; }
Hàm kiểm tra số lẻ
int KiemTraToanLe(int a[], int n) { for( int i=0;i<n;i++) if(a[i]%2==0) { return -1; break; } return 1; }
Chương trình kiểm tra số chẵn
#include<stdio.h> #include<conio.h> #define MAX 100 void nhapmang(int a[], int &n); void xuatmang(int a[], int n); int KiemTraToanChan(int a[], int n); void main() { int a[MAX],n; nhapmang(a,n); printf("\nNoi dung cua mang"); xuatmang(a,n); if( KiemTraToanChan(a,n)==-1) printf("\nMang khong toan chan"); else printf("\nMang toan la so chan"); printf("\nChuc cac ban hoc tot"); getch(); } void nhapmang(int a[], int &n) { do { printf("\nSo phan tu trong mang "); scanf("%d",&n); }while(n<=0 && n>100); for(int i=0 ; i<n ; i++ ) { printf("\nSo phan tu a[%d] la: ",i); scanf("%d",&a[i]); } } void xuatmang(int a[], int n) { for(int i=0 ; i<n ; i++ ) printf("%4d",a[i]); } int KiemTraToanChan(int a[], int n) { for( int i=0;i<n;i++) if(a[i]%2!=0) { return -1; break; } return 1; }
Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.
Chúc các bạn thành công!
Xem thêm: Kiểm tra mảng số nguyên có toàn là chữ số chẵn hay không ?
Đã return -1; rồi còn break làm gì?
Break để nó thoát ra khi có số lẻ, để k chạy hết vòng lặp
Ví dụ như mảng có n=10 số thì i=4 nó là số lẽ thì thoát ra vòng lặp thì đỡ xíu, chứ để chạy hết vòng lặp cũng được nhưng k tối ưu