Trộn 2 mảng 1 chiều a, b (đã sắp xếp không giảm) thành một mảng một chiều c, cũng có thứ tự không giảm.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define max 100
void NhapMang(int a[], int &n);
void XuatMang(int a[], int n);
void HoanVi(int &a, int &b);
void SapTang(int a[], int n);
void NoiMang(int a[], int &n, int b[], int m, int c[], int &k);
#include "MangBt07.h"
void NhapMang(int a[], int &n)
{
printf("Nhap so phan tu: "); scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
printf("a[%d] = ", i);
scanf_s("%d", &a[i]);
}
}
void XuatMang(int a[], int n)
{
printf("\nNoi dung mang: ");
for (int i = 0; i < n; i++)
printf(" %d \t ", a[i]);
}
void HoanVi(int &a, int &b)
{
int tam = a;
a = b; b = tam;
}
void SapTang(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j])
HoanVi(a[i], a[j]);
}
void NoiMang(int a[], int &n, int b[], int m, int c[], int &k)
{
int i = 0, j = 0; k = 0;
while (i<n&&j<m)
{
c[k++] = a[i++];
c[k++] = b[j++];
}
while (i<n)
c[k++] = a[i++];
while (j<m)
c[k++] = b[j++];
}
#include "MangBt07.h"
void main()
{
int a[max], b[max], c[max]; int m, n, k;
printf("Nhap vao mang a[]:\n"); NhapMang(a, n); SapTang(a, n);
printf("Nhap vao mang b[]:\n"); NhapMang(b, m); SapTang(b, m);
k = m + n;
NoiMang(a, n, b, m, c, k); XuatMang(c, k);
}
Không có nhận xét nào:
Đăng nhận xét