Bài toán: Tìm số chẵn/lẻ đầu tiên trong mảng số nguyên
Input: mảng a có n phần tử
Xử lý: duyệt từ đầu mảng, tìm vị trí chẵn/lẻđầu tiên trong mảng, thoát khỏi vòng lặp
Nếu duyệt hết mảng mà không tìm được số chẵn/lẻ thì trả về giá trị -1
Output: mảng không có giá trị chẵn/lẻ -1, giá trị chẵn/lẻ đầu tiên
Hàm tìm giá trị chẵn
int ChanDau(int a[], int n) { for(int i=0 ; i<n ; i++ ) if( a[i]%2==0) { return a[i]; break; } return -1; }
Hàm tìm giá trị lẻ
int LeDau(int a[], int n) { for(int i=0 ; i<n ; i++ ) if( a[i]%2!=0) { return a[i]; break; } return -1; }
Chương trình tìm chẵn đầu tiên
#include<stdio.h> #include<conio.h> #define MAX 100 void nhapmang(int a[], int &n); void xuatmang(int a[], int n); int ChanDau(int a[], int n); void main() { int a[MAX],n; nhapmang(a,n); printf("\nNoi dung cua mang"); xuatmang(a,n); if(ChanDau(a,n)==-1) printf("\nMang khong co so chan"); else printf("\nGia tri chan dau tien: %d",ChanDau(a,n)); 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 XuatChan(int a[],int n) { int i; for( i=0 ; i<n ; i++ ) if(a[i]==1) return a[i]; return -1; } int ChanDau(int a[], int n) { for(int i=0 ; i<n ; i++ ) if( a[i]%2==0) { return a[i]; 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:Tìm số chẵn lớn nhất/nhỏ nhất trong mảng