代码报错的原因

#include  <iostream>
using  namespace  std;

struct  Student{
        string  name;
        Student*  next;
};

void  addStudent(Student*  head,  Student*  s)  {
	
	
	
	
	
        //  编写函数实现题目所描述的功能
        
Student * p=head;
while (p->next->name!="jone"&&p->next!=NULL){
p=p->next;
cout<<"no\n" ;
cout<<p->name<<"\n";
if(!(p->next!=NULL)){
	p->next=NULL;
}


}
cout<<s->name<<"THIS IS S `S NAME";
if(p->next!=NULL){

Student *pi=new Student ;
Student *pi1=p->next;
 
pi->name =s->name;
Student * p9=p->next->next;
p->next=pi;
pi->next=pi1;
pi1->next=p9;

 

}
if(p->next==NULL) {

Student *pii=new Student ;
pii->name =s->name;
 p->next=pii;
pii->next=NULL;
}

}

int  main(){
        Student*  head  =  new  Student;
        head->next  =  nullptr;
        head->name  =  "";
        Student*  pre  =  head;
        for  (int  i  =  0;  i  <  5;  i++)  {
                Student*  s  =  new  Student;
                string  temp;
                cin  >>  temp;
                s->name  =  temp;
                s->next  =  nullptr;
                pre->next  =  s;
                pre  =  s;
        }

        string  name;
        cin  >>  name;
        Student*  s  =  new  Student;
        s->name  =  name;
        s->next  =  nullptr;
        addStudent(
head,s
);

        for(Student*  p  =  head->next;  p;  p  =  p->next)    {        //    循环输出
                cout<<  p->name  <<  "  ";
        }

        return  0;
}

因为对null的name进行了访问 改法,交换顺序

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值