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

悬赏问题

  • ¥30 单片机与嵌入式系统-电子时钟
  • ¥20 unity实习让我做一个程序
  • ¥15 idea tomcat和sql驱动不匹配吗
  • ¥15 如何查看h3c 5130s-28f-si交换机配置 及更改网口
  • ¥15 HFSS仿真喇叭天线阵列方向图出现异常
  • ¥15 blender自发光强度
  • ¥15 FIR滤波器算法设计与实现(利用库函数firdec()
  • ¥15 利用单片机产生正弦信号,来测量差分放大电路放大倍数和共模放大倍数的思路和仿真
  • ¥60 关于mavlink的论文咨询
  • ¥66 定制开发肯德基自动化网站下单软件