纸鸢戏 2021-11-22 17:32 采纳率: 100%
浏览 35
已结题

如何在静态链表中输入输出姓名

这段代码只能显示学号和成绩,如何实现显示姓名?完整代码:
#include<stdio.h>
struct Student
{int num;
float score;
struct Student*next;
};
int main()
{struct Student a,b,c,d,*head,*p;
a.num=202101;a.score=93.7;
b.num=202102;b.score=94.1;
c.num=202103;c.score=93.8;
d.num=202104;d.score=93.9;
head=&a;
a.next=&b;
b.next=&c;
c.next=&d;
d.next=NULL;
p=head;
do
{printf("%ld%5.1f\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
return 0;
}

运行结果(不知如何上传图片,用文字表示):
202101 93.7
202102 94.1
202103 93.8
202104 93.9
我想让运行结果变为:
202101 xiaoming 93.7
202102 xiaowei 94.1
202103 xiaotian 93.8
202104 xiaodu 93.9
请问该如何添加代码?

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-22 17:34
    关注

    你加一个姓名字段啊

    #include<stdio.h>
    struct Student
    {int num;
    float score;
     char *name;
    struct Student*next;
    };
    int main()
    {struct Student a,b,c,d,*head,*p;
    a.num=202101;a.score=93.7;a.name = "xiaoming";
    b.num=202102;b.score=94.1;b.name = "xiaowei";
    c.num=202103;c.score=93.8;c.name="xiaotian";
    d.num=202104;d.score=93.9;d.name="xiaodu";
    head=&a;
    a.next=&b;
    b.next=&c;
    c.next=&d;
    d.next=NULL;
    p=head;
    do
    {printf("%ld %s %5.1f\n",p->num,p->name,p->score);
    p=p->next;
    }while(p!=NULL);
    return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 11月22日
    • 已采纳回答 11月22日
    • 创建了问题 11月22日

    悬赏问题

    • ¥15 C++代码报错问题,c++20协程
    • ¥15 c++图Djikstra算法求最短路径
    • ¥15 Linux操作系统中的,管道通信问题
    • ¥15 ansible tower 卡住
    • ¥15 等间距平面螺旋天线方程式
    • ¥15 通过链接访问,显示514或不是私密连接
    • ¥100 系统自动弹窗,键盘一接上就会
    • ¥50 股票交易系统设计(sql语言)
    • ¥15 调制识别中这几个数据集的文献分别是什么?
    • ¥15 使用c语言对日志文件处理