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

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

这段代码只能显示学号和成绩,如何实现显示姓名?完整代码:
#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日

悬赏问题

  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?