Yêu cầu bài toán: Nhập mảng a và b (rồi sắp xếp tăng dần) sau đó gộp thành mảng c cũng đc sắp xếp tăng dần.
Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define size 100
void sapxep(int a[size],int n)
{
int tg;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
{
tg=a[i];
a[i]=a[j];
a[j]=tg;
}
}
void nhap(int a[size],int n)
{
randomize();
for(int i=0;i<n;i++)
a[i]=random(10000)%10;
}
void xuat(int a[size],int n)
{
for(int i=0;i<n;i++)
printf("%4d",a[i]);
printf("\n");
}
void main()
{
clrscr();
int i,a[size],b[size],c[size],n,m;
printf("Nhap so luong phan tu mang a: ");
scanf("%d",&n);
nhap(a,n); sapxep(a,n);
printf("\nNhap so luong phan tu mang b: ");
scanf("%d",&m);
nhap(b,m); sapxep(b,m);
xuat(a,n); xuat(b,m);
for(i=0;i<n;i++)
c[i]=a[i];
for(i=0;i<m;i++)
c[i+n]=b[i];
sapxep(c,m+n);
xuat(c,m+n);
getch();
}
Bài mình có chỗ không hay ở phần gộp mảng. Nhưng làm biếng suy nghĩ nên chỉ biết làm có vậy. Mong đc các bạn đóng góp ý kiến để đưa ra hướng giải quyết tốt nhất
--------------------------------------------------
Xem các chủ đề cùng chuyên mục: