周五作业题

#include<iostream>
#include<cstring>
using namespace std;
struct  node
{
    int Order;
    char  Name[10];
    char Sex[2];
    int Grade;
    node *next;
}*head,*tail,*q,*p,*t;
int main()
{
    int n;
    cout<<"请输入学生的个数   ";
    cin>>n;
    head=new node;
    tail=head;
    for(int i=1; i<=5; i++)
    {
        p=new node;
        cin>>p->Order>>p->Name>>p->Sex>>p->Grade;
        tail->next=p;
        tail=p;
    }//存入信息
    int len=0;
    p=head->next;
    while(p)
    {
        p=p->next;
        len++;
    }//判断链表长度,其实不用判断,在输入的时候已经知道长度了
    cout<<"链表的长度是   ";
    cout<<len<<endl;
    int num;
    cout<<"请输入要插入的学生位置和信息";
    t=new node ;
    cin>>num;
    cin>>t->Order>>t->Name>>t->Sex>>t->Grade;//输入要存入的信息
    if(num<0||num>len)
    {
        cout<<"wrong!"<<endl;
        return 0;
    }//如果不符合条件就直接退出
    p=head->next->next;
    q=head->next;
    int  ans=0;
    while(p)
    {
        ans++;
        if(ans==num)
        {
            q->next=t;
            t->next=p;
            break;
        }
        p=p->next;
        q=q->next;

    }//寻找符合条件的数
    cout<<"链表的节点按顺序表示为   ";
    cout<<endl;
    p=head->next;
    while(p)
    {
        cout<<p->Order<<" "<<p->Name<<" "<<p->Sex<<" "<<p->Grade<<endl;
        p=p->next;
    }//顺序输出
    return 0;
}

猜你喜欢

转载自blog.csdn.net/let_life_stop/article/details/80697360