Thứ Sáu, 23 tháng 12, 2016

Bài tập 234-235 : Cho 2 mảng a, b.Đếm ptử chỉ xuất hiện 1 trong 2 mảng

#include <iostream>
using namespace std;

#define MAX 100

// MẢNG 1 CHIỀU 
// 1. HÀM NHẬP SỐ PHẦN TỬ
void NhapN(int &N)
{
 do
 {
  cout << "Moi ban nhap so phan tu cua mang N = ";
  cin >> N;

  // 0 < N <= MAX
  // Điều kiện phải ngược lại 
  if (N <= 0 || N > MAX)
   cout << "Nhap sai vui long nhap la 0 < N <= " << MAX << "\n";

 } while (N <= 0 || N > MAX);
}

// 2. HÀM NHẬP MẢNG
void NhapMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << "A[" << i << "]= ";
  cin >> A[i];
 }
}

// 3. HÀM XUẤT MẢNG
void XuatMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << A[i] << "\t";
 }
}

// DẠNG ĐẾM
// 1. Khai báo biến đếm
// 2. Duyệt
//  2.1 Nếu
//   tăng đếm
// 3. Trả về kết quả đếm


//234 Cho 2 mảng a, b.Đếm ptử chỉ xuất hiện 1 trong 2 mảng
// VD : 
// A : 1 4 6
// B : 1 4 7 9 8
//==> 6 7 9 8
int Dem_Xuat_Hien_Trong_2_Mang(int A[], int B[], int Na, int Nb)
{
 int i, j, dem = 0, flag;
 for (i = 0; i < Na; i++)
 {
  flag = 1;
  for (j = 0; j < Nb; j++)
  {
   if (A[i] == B[j])
   {
    flag = 0;
    break;
   }
  }
  if (flag == 1)
   dem++;
 }

 for (i = 0; i < Nb; i++)
 {
  flag = 1;
  for (j = 0; j < Na; j++)
  {
   if (B[i] == A[j])
   {
    flag = 0;
    break;
   }
  }
  if (flag == 1)
   dem++;
 }

 return dem;
}
//235 Cho 2 mảng a, b.Liệt kê ptử xuất hiện trong 2 mảng
void LietKe_Xuat_Hien_Trong_2_Mang(int A[], int B[], int Na, int Nb)
{
 int i, j;
 for (i = 0; i < Na; i++)
 {
  for (j = 0; j < Nb; j++)
  {
   if (A[i] == B[j])
   {
    cout << A[i]<<"\t";
    break;
   }
  }
 }
}

int main()
{
 int Na = 0;
 NhapN(Na);

 int A[MAX];
 NhapMang(A, Na);
 cout << "MANG A BAN DAU\n";
 XuatMang(A, Na);
 cout << "\n";
 
 int Nb = 0;
 NhapN(Nb);

 int B[MAX];
 NhapMang(B, Nb);
 cout << "MANG B BAN DAU\n";
 XuatMang(B, Nb);
 cout << "\n";

 int dem = Dem_Xuat_Hien_Trong_2_Mang(A, B, Na, Nb);
 cout << "Bai Tap 234 : " << dem;
 
 cout << "\n";
 cout << "Bai Tap 235 : Xuat hien trong ca 2 mang A & B  gom\n";
 LietKe_Xuat_Hien_Trong_2_Mang(A, B, Na, Nb);
 return 0;
}

Không có nhận xét nào:

Đăng nhận xét