c语言:写一个程序建立一个含有学生(学号成绩)数据的单向动态链表(我是个初学者希望可以解释清楚点)

c语言:写一个程序建立一个含有学生(学号成绩)数据的单向动态链表(我是个初学者希望可以解释清楚点)这是我写的,哪里错了希望可以指点出来,谢谢。#include<stdio... c语言:写一个程序建立一个含有学生(学号成绩)数据的单向动态链表(我是个初学者希望可以解释清楚点)这是我写的,哪里错了希望可以指点出来,谢谢。
#include<stdio.h>
struct student
{
long int num;
float score;
struct student *next;
}a;
void main()
{
int n=0;
struct student *p1,*p2,*head=NULL;
scanf ("%ld%lf",&a.num,&a.score);
p1=&a;
while (p1->num!=0) /*学号输入0时退出程序*/
{
n=n+1;
if (n==1)
{
head=p1;
}
else
{
p2->next=p1;
}
p2=p1;
scanf ("%ld%lf",&a.num,&a.score);
p1=&a;
}
p2->next=NULL;
do
{
printf("%ld%5.1lf\n",head->num,head->score);
head=head->next;
}
while (head);
}
展开
 我来答
时间会飞的狗
推荐于2017-10-06 · TA获得超过1139个赞
知道小有建树答主
回答量:1816
采纳率:66%
帮助的人:470万
展开全部
1.n的存在没必要,直接在循环外面将head指向p1
2.新建节点顺序错误。你应该先用p2=malloc(…)分配空间,然后输入数据,最后将p1的next指向p2,最后令p1=p2就行了。之后进行循环
更多追问追答
追问
我这个为什么输出时第一个成绩永远为0

西北战狼55
2016-10-26 · TA获得超过792个赞
知道小有建树答主
回答量:1023
采纳率:0%
帮助的人:253万
展开全部
这个我会,可以帮你写!
追问
我有答案了,你告诉我struct student *creat();为什么就是创建链表?这句话是什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式