纸鸢戏 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日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同