Code chỉ nhập được 2 Node rồi máy đứng im

Xem giùm em đoạn code . Em chỉ nhập được 2 Node , rồi mày nó đứng im . Em cảm ơn

#include <iostream>
using namespace std ;
struct Book{
	int ma ;
	char ten[150] ;
	int sotrang ;
};
struct Node{
	Book *data ;
	Node *pNext ;
};
struct SingleList{
	Node *pHead ;
};
void init(SingleList *&list)
{
	list->pHead=NULL ;
}
Node *CreateNode(Book *d)
{
	Node *pNode = new Node ;
	if(pNode!=NULL)
	{
		pNode->data = d;
		pNode->pNext=NULL ;
	}
	else
	{
		cout<<"cap phat bo nho that bai\n" ;
	}
	return pNode ;
}
void NhapBook(Book *&d)
{
	cout<<"Ma: ";
	cin>>d->ma ;
	cout<<"Ten: ";
	cin.ignore();
	gets(d->ten) ;
	cout<<"So trang: ";
	cin>>d->sotrang ; 
}
void InserLast(SingleList *&list,Book *d)
{
	Node *pNode = CreateNode(d) ;
	if(list->pHead==NULL)
	{
		list->pHead=pNode ;
	}
	Node *pTmp=list->pHead ;
	while(pTmp->pNext!=NULL)
	{
		pTmp=pTmp->pNext ;
	}
	pTmp->pNext=pNode ;
}
void PrintNode(SingleList *&list)
{
	if(list->pHead==NULL)
	{
		cout<<"Danh sach lien ket rong\n";
	}
		Node *pTmp=list->pHead ;
		while(pTmp!=NULL)
		{
			cout<<pTmp->data->ma<<"\t"<<pTmp->data->sotrang<<"\t"<<pTmp->data->ten<<endl ;
			pTmp=pTmp->pNext ;
		}
}
int main()
{
	SingleList *list = new SingleList ;
	init(list) ;
	for(int i=0 ; i<5 ; i++)
	{
		Book *p = new Book ;
		NhapBook(p) ;
		InserLast(list,p) ;
	}
}
1 Like

format code please!
ありがと。

1 Like

Vừa tiếng Anh vừa tiếng Nhật B kinh dữ nói tiếng Việt đi bạn

2 Likes

sorry anh đây là lần đầu đăng bài nên không biết hjhj

Ở cái hàm ínerlast cái phần sau if bọc hết đoạn code đó vào else thử xem sao. Ko có máy chạy nên không trắc cho lắm.

2 Likes

Chạy được rồi anh , em cảm ơn ạ

Có phải lỗi đó không.

dạ lỗi đó , thiếu else

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?