#include "stdio.h"#include<malloc.h>#include<string.h>#include<ctype.h>#define LEN struct studentstruct student{ int num; int score; struct student*next;};struct student*create(){ char ch; struct student *head; struct student*p1,*p2; int a=0; printf("是否输入新数据:\n"); while(toupper(ch=getchar())=='Y') { p1=(LEN*)malloc(sizeof(LEN)); scanf("%d%d",&(*p1).num,&(*p1).score); a++; if(a==1) head=p1; else (*p2).next=p1; p2=p1; p1->next=NULL; } return(head);}void print(struct student *head){ struct student *p; p=head; while(p!=NULL) { printf("\n学号:%d,成绩:%d",p->num,p->score); p=p->next; }}void main( ){ print(create());}
1 回答
已采纳
zy112
TA贡献8条经验 获得超10个赞
getchar() 会接受回车, 所以你在输入了学号和成绩之后,你会输入回车,然后getchar() 就会接受回车, 不等于 Y , 所以输入就结束了, 你在while 后面输入一个getchar()就可以了。。如下。
struct student*create() { char ch; struct student *head; struct student*p1,*p2; int a=0; printf("是否输入新数据:\n"); while(toupper(ch=getchar())=='Y') { p1=(LEN*)malloc(sizeof(LEN)); scanf("%d%d",&(*p1).num,&(*p1).score); a++; if(a==1) head=p1; else (*p2).next=p1; p2=p1; p1->next=NULL; getchar(); } return(head); }
- 1 回答
- 0 关注
- 1419 浏览
添加回答
举报
0/150
提交
取消