VD nhập mảng A là : 4 5 6 7
mảng B là : 5 6 7
kết quả lại cho là B không phải là mảng con của A
#include<stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
int A[100],n,a;
void main()
{
int nb,na;
int B[100];
Nhap('A',A,n);
Xuat('A',A,n);
Nhap('B',B,nb);
Xuat('B',B,nb);
int check=KiemTraMangBCoPhaiLaMangConCuaMangA(A,B,n,nb);
if(check!=1)
{
cout<<"\nMang B khong phai la mang con cua A";
}
else
{cout<<"\nMang B la mang con cua A";}
getch();
}
void Nhap(char ten,int A[],int &n)
{
do
{
int i;
cout<<"Nhap so phan tu cua day:";
cin>>n;
if(n <= 1 || n > 100)
{
cout<<"\nSo phan tu khong hop le. Xin kiem tra lai !";
}
}
while(n <= 1 || n > 100);
for(int i=1;i<=n;i++)
{
cout<<ten<<"["<<i<<"]=";
cin>>A[i];
}
}
void Xuat(char ten,int A[],int n)
{
cout<<"\nXuat:";
for(int i=1;i<=n;i++)
cout<<ten<<"["<<i<<"]="<<A[i]<<endl;
}
int KiemTraMangBCoPhaiLaMangConCuaMangA(int A[], int B[], int n, int nb)
{
int i,j,check=0;
for(i=1;i<=nb;i++)
{
if(A[i]==B[1])
{
int start = i;
check=1;
for(j=1;j<=n;j++)
{
if(B[j]!=A[start++])
{
check=0;
break;
}
}
if(check==1)
{
return check;
}
}
}
return check;
}