Exception thrown: write access violation. l.pTail was nullptr. list 1 phân số ai biết sữa sao chỉ mình với cảm ơn nhìu
#include<iostream>
#include<stdio.h>
using namespace std;
struct Phanso
{
int tuso;
int mauso;
float ketqua;
};
struct node
{
Phanso data;
node *pNext;
};
struct list
{
node *pHead;
node *pTail;
};
void Khoitaolist(list &l)
{
l.pHead = NULL;
l.pTail = NULL;
}
node *Khoitaonode(Phanso &x)
{
node *p = new node;
if (p == NULL)
{
cout << "\nKo du bo nho";
return NULL;
}
p->data.tuso = x.tuso;
p->data.mauso = x.mauso;
p->data.ketqua = x.ketqua;
p->pNext = NULL;
return p;
}
bool Isempty(list &l)
{
if (l.pHead == NULL)
{
return true;
}
return false;
}
bool Addhead(list &l, Phanso &x)
{
node *p = new node;
p = Khoitaonode(x);
if (Isempty(l))
{
l.pHead = p;
}
p->pNext = l.pHead;
l.pHead = p;
return true;
}
bool Addtail(list &l, Phanso &x)
{
node *p = Khoitaonode(x);
if (Isempty(l))
{
l.pHead = p;
}
l.pTail->pNext = p;
l.pTail = p;
return true;
}
void Nhap(list &l)
{
int n;
cout << "\nNhap so luong phan so: ";
cin >> n;
for (int i = 0; i < n; i++)
{
Phanso x;
cout << "\nNhap Tu So: ";
cin >> x.tuso;
do
{
cout << "\nNhap mau so: ";
cin >> x.mauso;
if (x.mauso == 0)
{
cout << "\nMau so ko hop le ";
}
} while (x.mauso == 0);
if (x.mauso < 0)
{
x.tuso *= -1;
x.mauso *= -1;
}
x.ketqua = (float)x.tuso / x.mauso;
Addtail(l, x);
}
}
void Xuat(list &l)
{
if (Isempty(l))
{
cout << "\nrong";
}
else
{
node *p = l.pHead;
while (p!=NULL)
{
cout << "\t" << p->data.tuso << " / " << p->data.mauso;
p = p->pNext;
}
}
}
void Menu(list &l)
{
int choice;
while (true)
{
system("cls");
cout << "\n2.Phanso";
cout << "\n0.Ket thuc";
cout << "\n\n\n\tNhap lua chon: ";
cin >> choice;
if (choice == 2)
{
list l;
Khoitaolist(l);
Nhap(l);
Xuat(l);
system("pause");
}
if (choice == 0)
{
break;
}
}
}
void main()
{
list l;
Menu(l);
system("pause");
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?