Ai giúp em chỗ này được không ạ, e cho chạy chương trình mà nó k thể in ra
#include<stdio.h>
#include<stdlib.h>
struct HocSinh{
char Ho_ten;
int Tuoi;
float Diem_TB;
};
typedef struct HocSinh HS;
struct Node{
HS data;
struct Node *pNext;
};
typedef struct Node NODE;
NODE *pHead = NULL;
NODE *pTail = NULL;
NODE *CapPhatNODE()
{
int n;
NODE *p = (NODE*)malloc(n * sizeof(NODE));
if(p == NULL){
return NULL;
}
return p;
}NODE *KhoiTaoNODE(char x, int y, float z){
NODE *p = CapPhatNODE();
p->pNext = NULL;
p->data.Ho_ten = x;
p->data.Tuoi = y;
p->data.Diem_TB = z;
return p;
}
void ThemVaoDau(char x, int y, float z){
NODE *p = KhoiTaoNODE(x, y, z);
if(pHead == NULL){
pHead = pTail = p;
}
else{
p->pNext = pHead;
pHead = p;
}
}
void ThemVaoCuoi(char x, int y, float z){
NODE *p = KhoiTaoNODE(x, y, z);
if(pHead == NULL){
pHead = pTail = p;
}
else{
pTail->pNext = p;
pTail = p;
}
}
void HamXuat()
{
int count;
for(NODE *p = pHead; p != NULL; p = p->pNext){
count ++;
printf("%-10d%-20s%-10d%0.2f\n", count, p->data.Ho_ten, p->data.Tuoi, p->data.Diem_TB);
printf("\n");
}
printf("\n");
}
int main()
{
int o;
int n;
int y;
char x;
float z;
printf("1. Them hoc sinh vao dau danh sach\n");
printf("2. Them hoc sinh vao cuoi danh sach\n");
printf("3. Thoat chuong trinh\n");
do{
printf("Choose an option: ");
scanf("%d", &o);
switch(o){
case 1:
printf("Them hoc sinh vao dau danh sach\n");
printf("Nhap so luong hoc sinh: ");
scanf("%d", &n);
for(int i = 1; i <= n; i++){
printf("Nhap vao thong tin hoc sinh thu %d\n", i);
printf("Ho va Ten: ");
fflush(stdin);
gets(&x);
printf("Tuoi: "); scanf("%d", &y);
printf("Diem TB: "); scanf("%f", &z);
ThemVaoDau(x, y, z);
}
printf("\n\n\t\tDANH SACH SINH VIEN\n");
printf("%-10s%-20s%-10s%s", "STT", "Ho Ten", "Tuoi", "Diem TB");
HamXuat();
break;
}
}
while(o != 3);
if(o == 3){
printf("Ban da thoat chuong trinh!");
}
return 0;
}