一个关于c语言数据结构的问题 急等!!!!!!!!!!!!

1.建立一个有4个结点的单链表(无头结点),包含以下内容:Tom79Mike80Andy91Angelia23用户更新Tom的成绩为29,显示成绩更新后的整个单链表。... 1. 建立一个有4个结点的单链表(无头结点),包含以下内容:
Tom 79
Mike 80
Andy 91
Angelia 23
用户更新Tom的成绩为29,显示成绩更新后的整个单链表。
展开
 我来答
enjoy冰心玉壶
推荐于2016-02-28 · TA获得超过798个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:96.6万
展开全部

下面的程序先输入4个结点,分别输入姓名与成绩。然后再输入需要更新的名字,也就是Tom,再输入更新的成绩,也就是29。更新完成后显示整个单链表。我跑过这个程序了,没有错误的。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct list
{
char name[10];
int grade;
struct list *next;
};

int main()
{
struct list * head;
struct list * p;
struct list * pNew;
int sign;
char update_name[10];
int update_grade;

sign=0;
p=(struct list *)malloc(sizeof(struct list));
head=p;
printf("please input the name:\n");
scanf("%s",p->name);
printf("please input the grade:\n");
scanf("%d",&p->grade);

for(sign=0;sign<3;sign++)
{
pNew=(struct list *)malloc(sizeof(struct list));
printf("please input the name:\n");
scanf("%s",pNew->name);
printf("please input the grade:\n");
scanf("%d",&pNew->grade);
p->next=pNew;
p=pNew;
}
pNew->next=NULL;

p=head;
printf("before change,the list is:\n");
for(p;p!=NULL;p=p->next)
{
printf("the name is %s\n",p->name);
printf("the grade is %d\n",p->grade);
printf("\n");
}

p=head;
printf("please input the name you want to update the grade:\n");
scanf("%s",update_name);
printf("please input the grade you want to update:\n");
scanf("%d",&update_grade);
for(p;p!=NULL;p=p->next)
{
if(strcmp(p->name,update_name)==0)
{
p->grade=update_grade;
break;
}
}
p=head;
printf("after change,the list is:\n");
for(p;p!=NULL;p=p->next)
{
printf("the name is %s\n",p->name);
printf("the grade is %d\n",p->grade);
printf("\n");
}

return 0;
}

运行结果如下,你也可以自己跑一下。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式