Bài toán: Kiểm tra mảng số nguyên có tồn tại hai giá trị 0 liên tiếp nhau hay không ?
Input: mảng a có n phần tử
Xử lý: duyệt mảng tìm giá trị 0 đầu tiên và giá trị 0 đầu tiên +1có bằng 0 hay không
Output: mảng không có giá trị 0 liên tiếp -1, giá trị 0 liên tiếp 1
Hàm kiểm tra giá trị 0 liên tiếp
int KiemTraSo0LienTiep(int a[], int n) { for( int i=0;i<n;i++) if(a[i]==0 && a[i+1]==0) { return 1; break; } return -1; }
Chương trình kiểm tra giá trị 0 liên tiếp
#include<stdio.h> #include<conio.h> #define MAX 100 void nhapmang(int a[], int &n); void xuatmang(int a[], int n); int KiemTraSo0LienTiep(int a[], int n); void main() { int a[MAX],n; nhapmang(a,n); printf("\nNoi dung cua mang"); xuatmang(a,n); if( KiemTraSo0LienTiep(a,n)==-1) printf("\nMang khong co gia tri 0 lien tiep"); else printf("\nMang co gia tri 0 lien tiep"); 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 KiemTraSo0LienTiep(int a[], int n) { for( int i=0;i<n;i++) if(a[i]==0 && a[i+1]==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!