Kiểm tra mảng B có phải dãy con của mảng A hay không?
Ví dụ nhập mảng A là : 4 5 6 7
mảng B là : 5 6 7
kết quả cho là B là mảng con của A

#include<stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
int A[100],n,a;
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<=n;i++)
	{
		if(A[i]==B[1])
		{
			int start = i;
			check=1;
			for(j=1;j<=nb;j++)
			{
				if(B[j]!=A[start++])
				{
					check=0;
					break;
				}
			}
			if(check==1)
			{
				return check;
			}
		}
	}
	return check;
}
int 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();
}

By alaza7

Leave a Reply

Your email address will not be published. Required fields are marked *