天才zzangzzangman蹦蹦 2021-05-07 22:11 采纳率: 40%
浏览 28
已采纳

链表的部分数据无法输出?

#include<iostream>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -1

typedef int Status;
typedef int ElemType;
typedef char ZF;

struct LNode
{
    ZF name[20];//名字
    ElemType num;//学号
    ElemType data;//成绩
    struct LNode *next;//指针域
};

typedef struct LNode LNode;
typedef struct LNode* LinkList;

//初始化
Status InitList(LinkList &L)
{
    L=new LNode;
    L->next=NULL;
    return OK;
}

//插入
Status ListInsert(LinkList &L,int i,ElemType xh,ZF xm[20],ElemType cj)// 学号  姓名  成绩
{
    if(i<1) return ERROR;

    LNode *p=L;
    int j=0;
    while(p!=NULL&&j<i-1)
    {
        p=p->next;
        j++;
    }
    if(p==NULL) return ERROR;

    LNode *s=new LNode;
    s->num=xh;
    s->name[20]=xm[20];
    s->data=cj;

    s->next=p->next;
    p->next=s;

    return OK;
}

//遍历
Status TraverseList(LinkList L)
{
    LNode *p=L->next;
    while(p!=NULL)
    {
        cout<<p->num<<endl;
        cout<<p->name<<endl;
        cout<<p->data<<endl;
        p=p->next;
    }
    return 0;
}

//销毁
void DestroyList(LinkList &L)
{
    LNode *p;
    while(L!=NULL)
    {
        p=L->next;
        delete L;
        L=p;
    }
}

//主函数
int main()
{
    LinkList L;
    InitList(L);//初始化
    ElemType cj,xh;
    ZF xm[20];

    int i;
    cout <<"请输入学生信息"<<endl;
    for(i=0;i<3;i++)
    {
        cout<<"学号:";
        cin>>xh;
        cout<<"姓名:";
        cin>>xm;
        cout<<"成绩:";
        cin>>cj;
        ListInsert(L,i+1,xh,xm,cj);//插入
    }
    
    TraverseList(L);//遍历

    DestroyList(L);//销毁

    return 0;
}

除了成绩,姓名和学号都不对

是遍历出问题了嘛

  • 写回答

2条回答 默认 最新

  • 猫叔大鸭梨 2021-05-08 01:16
    关注

    47行给名字赋值的地方改一下,不能直接用等号,C++就是这么麻烦。

    strcpy(s->name , xm);

    这样就可以了,其他地方不用改。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable