#include <iostream>
#include <stdlib.h>
using namespace std;
struct phanso
{
int tu;
int mau;
};
typedef struct phanso Phanso;
const istream& operator >>(istream& indev, Phanso& t)
{
indev >> t.tu >> t.mau;
return indev;
}
void ChenPhanTuPhanSo(Phanso t, Phanso*& p, int& n)
{
Phanso* a;
a = (Phanso*)realloc(p, (n + 1) * sizeof(Phanso));
if (a != NULL)
{
a[n] = t;
n++;
p = a;
}
}
void NhapMangPhanso(Phanso*& p, int& n)
{
p = NULL;
Phanso t;
while (cin >> t)
{
ChenPhanTuPhanSo(t, p, n);
}
cin.ignore();
}
void XuatMangPhanso(Phanso*& p, int& n)
{
for (int i = 0;i < n;i++)
{
cout << p[i].tu << "/" << p[i].mau << endl;
}
}
void XoaPhantu(Phanso*& p, int& n)
{
Phanso* a;
a = (Phanso*)realloc(p, (n - 1) * sizeof(Phanso));
if (a != NULL)
{
p = a;
n--;
}
}
void huymangphanso(Phanso*& p, int& n)
{
if (n > 0)
{
if (p != NULL)
{
free(p);
n = 0;
}
}
}
int main()
{
Phanso* p;
int n = 0;
int x ;
cout << " hay nhap cac chuc nang ban muon dung: " << endl;
cout << " nhap 1 neu muon nhap phan so vao mang " << endl;
cout << " nhap 2 neu muon xuat mang phan so " << endl;
cout << " nhap 3 neu muon chen mot phan so vao cuoi mang " << endl;
cout << " nhap 4 neu muon xoa mot phan so o cuoi mang " << endl;
cout << " nhap 5 neu muon huy mang phan so vua cap phat " << endl;
cout << " nhap -1 de thoat " << endl;
while (cin>>x)
{
if (x == -1)
break;
switch (x)
{
case 1:
NhapMangPhanso(p, n);
break;
case 2:
cout << "Xuat mang phan so " << endl;
XuatMangPhanso(p, n);
break;
case 3:
Phanso t;
cout << "chen mot phan so vao cuoi mang :" << endl;
cout << " hay nhap tu va mau phan so ban muon chen ";
cin >> t.tu >> t.mau;
ChenPhanTuPhanSo(t, p, n);
break;
case 4:
cout << "Xoa mot phan so so cuoi mang:" << endl;
XoaPhantu(p, n);
break;
case 5:
cout << " Huy mang phan so " << endl;
huymangphanso(p, n);
break;
}
cout << " hay nhap cac chuc nang ban muon dung: " << endl;
cout << " nhap 1 neu muon nhap phan so vao mang " << endl;
cout << " nhap 2 neu muon xuat mang phan so " << endl;
cout << " nhap 3 neu muon chen mot phan so vao cuoi mang " << endl;
cout << " nhap 4 neu muon xoa mot phan so o cuoi mang " << endl;
cout << " nhap 5 neu muon huy mang phan so vua cap phat " << endl;
cout << " nhap -1 de thoat " << endl;
}
return 0;
}
cho em hỏi sao em nhập phần tử của mảng rồi nhấn ctrl+x nó lại thoát mà không chạy tiếp cái while (cin>>x) nữa ạ mặc dù em đã dùng cin.ignore()