Code:
#include "stdio.h"
#include "conio.h"
typedef struct NgayThang{
unsigned char Ngay;
unsigned char Thang;
unsigned int Nam;
};
typedef struct NgayThang * ptrNgayThang;
//nhap ngay thang
NgayThang Nhap()
{
NgayThang nT;
printf("\tNhap ngay: ");
scanf("%d",&nT.Ngay);
printf("\tNhap thang: ");
scanf("%d",&nT.Thang);
printf("\tNhap nam: ");
scanf("%d",&nT.Nam);
return nT;
}
//nhap n ngay thang
ptrNgayThang Nhap(unsigned int n) {
ptrNgayThang temp = new NgayThang[n];
for(unsigned int i = 0; i<n; i++)
{
printf("Nhap ngay thu %d: \n",i);
temp[i] = Nhap();
}
return temp;
}
//xuat 1 ngay thang
void Xuat(NgayThang nT)
{
printf("%d-%d-%d ",nT.Ngay,nT.Thang,nT.Nam);
}
//xuat n ngay thang
void Xuat(ptrNgayThang temp, unsigned int n) {
for(unsigned int i = 0; i<n; i++)
{
Xuat(temp[i]);
}
}
//sap xep theo nam
void Bubble_Sort_Year(ptrNgayThang A, unsigned int n){
NgayThang temp;
for(unsigned int i = 0; i<n-1; i++)
for(unsigned int j = n-1; j>i;j--)
if(A[j].Nam<A[j-1].Nam)
{
temp = A[j];
A[j] = A[j-1];
A[j-1] = temp;
}
}
//chuong trinh chinh
void main()
{
clrscr();
ptrNgayThang p;
unsigned int n;
printf("Nhap vao so diem n = ");
scanf("%d",&n);
p = Nhap(n);
printf("Danh sach ngay thang vua nhap:\n");
Xuat(p,n);
Bubble_Sort_Year(p,n);
printf("\nDanh sach vua sap xep:\n");
Xuat(p,n);
getch();
}