+ Trả lời chủ đề
Hiện kết quả từ 1 tới 2 của 2

Chủ đề: Sắp xếp cấu trúc NGÀY THÁNG theo ngày - tháng - năm

  1. #1
    Status : Administrator đang ẩn
    Tham gia ngày : Aug 2011
    Đến từ : Ninh Kiều - Cần Thơ
    Bài gửi : 1.450

    Sắp xếp cấu trúc NGÀY THÁNG theo ngày - tháng - năm

    Bài toán: cho cấu trúc dữ liệu Ngày tháng như sau:
    Mã:
    typedef struct NgayThang{
       unsigned char Ngay;
       unsigned char Thang;
       unsigned int Nam;
    };
    typedef struct NgayThang * ptrNgayThang;
    Viết chương trình nhập vào n cấu trúc NGÀY THÁNG và sắp xếp n ngày tháng tăng dần theo ngày - tháng - năm.

  2. #2
    Status : Administrator đang ẩn
    Tham gia ngày : Aug 2011
    Đến từ : Ninh Kiều - Cần Thơ
    Bài gửi : 1.450
    Mã:
    #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(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
    				||(A[j].Nam==A[j-1].Nam && A[j].Thang<A[j-1].Thang)
    				||(A[j].Nam==A[j-1].Nam && A[j].Thang == A[j-1].Thang && A[j].Ngay<A[j-1].Ngay)
    			)
    			{
    				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(p,n);
    	
    	printf("\nDanh sach vua sap xep:\n");
    	Xuat(p,n);
    	getch();
    }

+ Trả lời chủ đề

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
Trang Chủ Việc Làm Gia Sư Gia sư