Bài 302: Đếm số lần xuất mảng a mảng b #include #include #include #define MAX 100 void nhap (int a[], int &n) { { printf("\nNhap so phan tu: "); scanf("%d", &n); if(n MAX) { printf("\nSo phan tu khong hop le Xin kiem tra lai !"); } }while(n MAX); for(int i = 0; i < n; i++) { printf("\nNhap a[%d]: ", i); scanf("%d", &a[i]); } } void xuat(int a[], int n) { for(int i = 0; i < n; i++) { printf("%4d", a[i]); } } int DemSoLanXuatHienCuaMangATrongMangB(int a[], int b[], int na, int nb) { int i, j, Start, flag, dem = 0; for(i = 0; i < nb; i++) // duyệt mảng b { if(a[0] == b[i] && nb - i >= na) // mà phần tử mảng a với phần tử mảng b { // số phần tử mảng b trừ i lớn số phần tử mảng a Start = i; // biến Start biến bắt đầu để đếm, khởi tạo i thỏa DK flag = 1; for(j = 0; j < na; j++) { if(a[j] != b[Start++]) { flag = 0; break; } } if(flag == 1) { dem++; } } } return dem; } int main() { int na, nb; int a[MAX], b[MAX]; printf("\nNhap mang a:"); nhap(a, na); xuat(a, na); printf("\nNhap mang b:"); nhap(b, nb); xuat(b, nb); int dem = DemSoLanXuatHienCuaMangATrongMangB(a, b, na, nb); printf("\nSo lan xuat hien cua mang a mang b = %d", dem); getch(); return 0; }