Code:
#include "conio.h"
#include "stdio.h"
#include "math.h"
#include "alloc.h"
typedef struct PhanSo{
int Tu;
int Mau;
};
typedef struct PhanSo * PS;
//nhap 1 phan so
PhanSo Nhap(){
PhanSo temp;
printf("\tTu: ");
scanf("%d",&temp.Tu);
temp.Mau = 0;
while(temp.Mau == 0)
{
printf("\tMau: ");
scanf("%d",&temp.Mau);
}
return temp;
}
//xuat phan so
void Xuat(PhanSo p) {
printf("%d/%d",p.Tu,p.Mau);
}
//Nhap n phan so
PS Nhap(int n) {
PS p = (PS)malloc(sizeof(PhanSo)*n);
for(int i = 0; i<n;i++)
{
printf("Phan so %d\n",i);
p[i] = Nhap();
}
return p;
}
//xuat n phan so
void Xuat(PS p, int n) {
printf("\nDay phan so:\n\t{");
for(int i = 0; i<n-1;i++)
{
Xuat(p[i]);
printf(",");
}
Xuat(p[n-1]);
printf("}");
}
//sap xep n phan so theo thu tu tang dan
void Bubble_Sort(PS A, unsigned int n){
PhanSo temp;
for(unsigned int i = 0; i<n-1; i++)
for(unsigned int j = n-1; j>i;j--)
if((A[j].Tu/A[j].Mau)<(A[j-1].Tu/A[j-1].Mau))
{
temp = A[j];
A[j] = A[j-1];
A[j-1] = temp;
}
}
//chuong trinh chinh
void main() {
clrscr();
unsigned int n;
PS t;
printf("n = ");
scanf("%d",&n);
printf("Nhap DS t:\n");
t = Nhap(n);
Xuat(t,n);
Bubble_Sort(t,n);
printf("\nSap xep n phan so: ");
Xuat(t,n);
getch();
}