đây là code của e. Nhập vào list công việc cho ngày... mỗi ngày có thể có nhiều công việc.... xuất ra ngày và list công việc trong ngày...
khi chạy đoạn code dưới trong Borland C++ thi nó báo lỗi " Improper use of typedef 'date' ". Nhờ các a sửa giúp e...
nhời các a sửa giúp lỗi dùm em...
Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct cv
{
        char tencv[30];
	char nd[100];
	char opt[20];
	int gio;
	int phut;
};
typedef struct date
{
	cv x[24];
	int ngay;
	int thang;
	int nam;
};
typedef struct node                        
{
	date info;
	struct node *pnext;
};
typedef node* tree;

void init(tree &l)
{
	l=NULL;
}
node* getnode(date a)
{                                            
	node *p= new node;
	if(p==NULL) return NULL;
	p->info=a;
	p->pnext=NULL;
	return p;
}
void nhapcv(date a)
{
        int n;
		for(int i=0; i<n; i++) 
		{
  			ffush(stdin);
			do{
				printf("Nhap gio: ");		scanf("%d",&date.x[i].gio);
				if(date.x[i].gio<0 || date.x[i].gio>23) printf("Gio khong hop le !\n");
			} while(date.x[i].gio<0 || date.x[i].gio>23);
			do{
				printf("Nhap phut: ");		scanf("%d",&date.x[i].phut);
				if(date.x[i].phut<1 || date.x[i].phut>60 ) printf("Phut khong hop le! \n");
			} while(date.x.phut<1 || date.x[i].phut>60 );
			printf("Ten cong viec: ");		gets(date.x[i].tencv);
			printf("Noi dung: ");		gets(date.x[i].nd);
			printf("Tinh chat: ");		gets(date.x[i].opt);
			printf("**************************************************\n");
   		}
		
}
void nhap(date a)
{
	int n;
 	fflush(stdin);
	printf("Nhap nam: ");		scanf("%d",&date.ngay);
	printf("Nhap Thang: ");		scanf("%d",&date.thang);
	switch (date.thang)
	{
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
		do {
			printf("Nhap Ngay: "); 		scanf("%d",&date.ngay);
			if (date.ngay<1 || date.ngay>31) printf("Ngay khong hop le !\n");
		} while (date.ngay<1 || date.ngay>31);

		case 4: case 6: case 9: case 11:
		do {
			printf("Nhap Ngay: "); 		scanf("%d",&date.ngay);
			if (date.ngay<1 || date.ngay>30) printf("Ngay khong hop le !\n");
		} while (date.ngay<1 || date.ngay>30);

		case 2:
		if((date.nam %4==0 && date.nam %100!=0)|| date.nam %400==0)
			do {
				printf("Nhap Ngay: "); 		scanf("%d",&date.ngay);
				if (date.ngay<1 || date.ngay>28) printf("Ngay khong hop le !\n");
			} while (date.ngay<1 || date.ngay>28);
		else
			do {
				printf("Nhap Ngay: "); 		scanf("%d",&date.ngay);
				if (date.ngay<1 || date.ngay>29) printf("Ngay khong hop le !\n");
			} while (date.ngay<1 || date.ngay>29);
	}
        printf("Nhap so luong cong viec: ");  scanf("%d",&n);
        nhapcv(a);
}
void xuatcv(date a, int n)
{
        for( int i=1; i=n; i++)
	{
		printf("\tGio: %d %d \n", date.x[i].gio, date.x[i].phut);
		printf("\tTen CV: %s\n",date.x[i].tencv);
		printf("\tNoi dung: %s\n",date.x[i].nd);
		printf("\tTinh chat: %s\n",date.x[i].opt);
		printf("**************************************\n");
        }
}
void xuat(date a)
{
		int n;
		printf("Ngay %d %d %d \n",date.ngay, date.thang, date.nam);
		xuatcv(a,n);
		
}
void input(tree &l)
{
	int k;
	printf("Nhap so ngay: ");		scanf("%d",&k);
	init(l);
	for(int i=0; i<k; i++)
	{
		date a[k];
		nhap(a);
		node*p=getnode(a);
	}
}
void output( tree l)
{
	node *p=l;
	while(p!=NULL)
	{
		xuat(p->info);

		p=p->pnext;
	}
}
void main()
{
	tree l;
	input(l);
	output(l);
	getch();
}