السلام عليكم لماذا دالة الطباعة لاتعمل بالشكل الصحيح ابغاها تطبع جميع الارقام المدخلة وليس فقط اول رقمين
مالخطأ؟
#include<iostream.h>
void insert ( );
void creat();
void read();
void print();
void remove();
void add();
struct node
{
int x,y;
node*next;
};
int a, b;
node *mynode;
node*p;
void creat()
{mynode=NULL;};
void read()
{
cout<<"a=";
cin>>a;
cout <<"b=";
cin>>b;
}
void searchp()
{
if (mynode==NULL)
insert();
else
while(p->next!=NULL)
{
if(p->x==a)
add();
else
insert();
p=p->next;
}
}
void insert()
{
p= new node;
p->x=a;
p->y=b;
p->next =mynode;
mynode=p;
}
void add()
{node*z=new node;
z->x=a;
z->y=b+ p->y;
z->next=mynode;
mynode=p;
}
void search0()
{
while(p->next!=NULL)
{
if(p->y==0)
p=p->next;}
}
void print()
{
cout<<mynode->y;
cout<<"x^"<<mynode->x<<"+"<<mynode->next;
}
void main ()
{
int k;
creat();
cout<<"NODE IS CREATED "<<endl;
a=1;
b=1;
while(a!=0&&b!=0)
{
cout<<"choose:\n1=insert new\n2-remov dont care\n3-print\n";
cin>>k;
if (k==1)
read();
searchp();
if(k==2)
search0();
if (k==3)
print();}
}