user-0 提问: 帮帮忙，急求

回复:
user: user-1
content: 引用 2 楼 weixin_42377720 的回复：完整代码如下： #include<stdlib.h> #include<stdio.h>  struct Student { 	int num; 	float score; 	struct Student *next; };  //定义一个全局变量 int n; //创建学生信息链表函数声明 struct Student *Creat(void); //打印学生信息函数声明 void Show_Student_MSG(struct Student *head); //修改学生信息函数声明 void Revise_Student_MSG(struct Student *head,int x);  int main(void) { 	struct Student *head;//头结点 	head=Creat();//创建链表函数 	Show_Student_MSG(head);//打印信息函数 	Revise_Student_MSG(head,77);//更正学生信息，参数1是头指针，参数2是休息要修改后的分数 	Show_Student_MSG(head);//打印信息函数  	system("pause"); 	return 0; }  struct Student *Creat(void) {//创建学生信息链表函数定义 	struct Student *head;//定义头结点指针 	struct Student *p1,*p2;//定义两个移动指针 	n=0; 	p1=p2=(struct Student *)malloc(sizeof(struct Student));//开辟一个新单元 	printf("请输入第一个学生的学号，分数："); 	scanf("%d,%f",&p1->num,&p1->score); 	head=NULL; 	while(p1->num!=0) 	{ 		n=n+1; 		if(n==1) 			head=p1; 		else 			p2->next=p1; 		p2=p1; 		p1=(struct Student *)malloc(sizeof(struct Student)); 		printf("请输入下一个学生的学号，分数(输入0结束)："); 		scanf("%d,%f",&p1->num,&p1->score); 	} 	p2->next=NULL;//链表最后要让链表尾为空 	return (head); }  void Show_Student_MSG(struct Student *head) {//打印学生信息函数定义 	struct Student *p;//定义一个移动指针 	printf("这是第%d个学生的信息\n",n); 	p=head; 	if(head!=NULL)//不是空链表 		do 		{ 			printf("%-4d%-4.1f\n",p->num,p->score); 			p=p->next; 		}while(p!=NULL);//没有到链表尾 }  void Revise_Student_MSG(struct Student *head,int x) {//修改学生信息函数定义，参数2是您要修改的分数 	float revise; 	struct Student *p;//定义一个移动指针 	p=head; 	printf("请输入您要更正学生的分数："); 	scanf("%f",&revise); 	while(p!=NULL) 	{ 		if(p->score==revise) 			p->score=x; 		p=p->next; 	} }楼主是没时间吗？发完问题没回来看看结果嘛

user: user-1
content: 完整代码如下： #include<stdlib.h> #include<stdio.h>  struct Student { 	int num; 	float score; 	struct Student *next; };  //定义一个全局变量 int n; //创建学生信息链表函数声明 struct Student *Creat(void); //打印学生信息函数声明 void Show_Student_MSG(struct Student *head); //修改学生信息函数声明 void Revise_Student_MSG(struct Student *head,int x);  int main(void) { 	struct Student *head;//头结点 	head=Creat();//创建链表函数 	Show_Student_MSG(head);//打印信息函数 	Revise_Student_MSG(head,77);//更正学生信息，参数1是头指针，参数2是休息要修改后的分数 	Show_Student_MSG(head);//打印信息函数  	system("pause"); 	return 0; }  struct Student *Creat(void) {//创建学生信息链表函数定义 	struct Student *head;//定义头结点指针 	struct Student *p1,*p2;//定义两个移动指针 	n=0; 	p1=p2=(struct Student *)malloc(sizeof(struct Student));//开辟一个新单元 	printf("请输入第一个学生的学号，分数："); 	scanf("%d,%f",&p1->num,&p1->score); 	head=NULL; 	while(p1->num!=0) 	{ 		n=n+1; 		if(n==1) 			head=p1; 		else 			p2->next=p1; 		p2=p1; 		p1=(struct Student *)malloc(sizeof(struct Student)); 		printf("请输入下一个学生的学号，分数(输入0结束)："); 		scanf("%d,%f",&p1->num,&p1->score); 	} 	p2->next=NULL;//链表最后要让链表尾为空 	return (head); }  void Show_Student_MSG(struct Student *head) {//打印学生信息函数定义 	struct Student *p;//定义一个移动指针 	printf("这是第%d个学生的信息\n",n); 	p=head; 	if(head!=NULL)//不是空链表 		do 		{ 			printf("%-4d%-4.1f\n",p->num,p->score); 			p=p->next; 		}while(p!=NULL);//没有到链表尾 }  void Revise_Student_MSG(struct Student *head,int x) {//修改学生信息函数定义，参数2是您要修改的分数 	float revise; 	struct Student *p;//定义一个移动指针 	p=head; 	printf("请输入您要更正学生的分数："); 	scanf("%f",&revise); 	while(p!=NULL) 	{ 		if(p->score==revise) 			p->score=x; 		p=p->next; 	} }

user: user-1
content: void Revise_Student_MSG(struct Student *head,int x) {//修改学生信息函数定义，参数2是您要修改的分数x 	float revise; 	struct Student *p;//定义一个移动指针 	p=head; 	printf("请输入您要更正学生的分数："); 	scanf("%f",&revise); 	while(p!=NULL) 	{ 		if(p->score==revise) 			p->score=x; 		p=p->next; 	} }