Mọi người cho hỏi em sai chỗ nào ạ
em chạy bị lỗi
em dùng tạm xóa bộ nhớ đệm của C++ do fflush(stdin) không dùng đc trong visual.
Bài làm:
#include <stdio.h>;
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;/*
HỌC SINH CÓ THÔNG TIN SAU: MÃ SỐ , HỌ TÊN , LỚP , ĐIỂM THI
*/
struct hocsinh
{
char ms[10];
char hoten[30];
char lop[10];
double diem;
};
typedef struct hocsinh HOCSINH;
struct node
{
HOCSINH *data;
struct node* pNext;
};
typedef struct node NODE;
struct list
{
NODE* pHead, * pTail;
};
typedef struct list LIST;
// KHỞI TẠO
void khoitao(LIST *l)
{
l->pHead = NULL;
l->pTail = NULL;
}
NODE* khoitaonode(HOCSINH *data)
{
NODE* p = (NODE*)malloc(sizeof(NODE*));
p->data = data;
p->pNext = NULL;
return p;
}
// THÊM
void themcuoi(LIST *l, NODE* p)
{
if (l->pHead == NULL)
{
l->pHead = l->pTail = p;
}
else
{
l->pTail->pNext = p;
l->pTail = p;
}
}
void nhaphocsinh(HOCSINH* hs)
{
cin.ignore();
printf("\nNhap vao ma so: ");
gets_s(hs->ms);
printf("\nNhap vao ten: ");
gets_s(hs->hoten);
printf("\nNhap vao lop: ");
gets_s(hs->lop);
printf("\nNhap vao diem: ");
scanf("%lf", &hs->diem);
}
void xuathocsinh(HOCSINH *hs)
{
printf("\n-------------------------------------------------");
printf("\nMa so: %s", hs->ms);
printf("\nHo ten: %s", hs->hoten);
printf("\nLop: %s", hs->lop);
printf("\nDiem: %lf", hs->diem);
}
// XUẤT
void input(LIST* l)
{
khoitao(l);
int n;
printf("\nNhap so luong hoc sinh: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
HOCSINH* hs = (HOCSINH*)malloc(sizeof(HOCSINH*));
printf("\nNhap thong tin sinh vien thu %d: ", i);
nhaphocsinh(hs);
NODE* p = (NODE*)malloc(sizeof(NODE*));
p = khoitaonode(hs);
themcuoi(l, p);
}
}
void output(LIST* l)
{
int dem = 1;
for (NODE* k = l->pHead; k != NULL; k = k->pNext)
{
printf("\nThong tin hoc sinh thu %d: ", dem++);
xuathocsinh(k->data);
}
}
int main()
{
LIST* l = (LIST*)malloc(sizeof(LIST*));
input(l);
output(l);
_getch();
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?