C语言链表(初学者不懂,求大神帮助,教材上的源代码抄下来用Code Blocks编译有个错误) 10

#include<malloc.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#defineN3//定义节... #include<malloc.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#define N 3 //定义节点的个数#define LEN sizeof(struct grade)//定义节点长度//定义节点结构struct grade{ char no[7];//学号 int score;//成绩 struct grade*next;//指针域};//create()函数功能:创建一个具有头节点的单链表//形参:无//返回值:返回单链表的头指针struct grade*create(void){ struct grade*head=NULL,*next,*tail; int i=1; for(;i<=N;i++);//循环语句输入N个节点的数据域的值 { new=(struct grade*)malloc(LEN);//向系统申请一个新节点的空间 printf("Input the number of student No.%d(6 bytes):",i); scanf("%s",new->no); if(strcmp(new->no,"000000")==0)//如果学号为6个0,则退出 { free(new);//释放最后申请的节点空间 break; } printf("Input the score of the student No.%d:",i); scanf("%d",&new->score); new->next=NULL;//置新节点的指针域为空 //将新节点插入到链表尾,并设置新的尾指针 if(i==1) head=new;//是第一个节点,置头指针 else tail->next=new;//是非首节点,将新节点插入到链表尾 tail=new;//设置新的尾节点 } return(head);//创建N个节点结束,返回head指针}main(){ struct grade*p; int i; p=create();//指针p获得create函数创建链表后返回的链表头指针head if(p!=NULL) for(i=1;i<=N;i++) { printf("&s:%d\n",p->no,p->score); //从链表的第一节点开始输出数据域的成员值 p=p->next; }}
哦哦!这里还有一个错误也请指教一下
展开
 我来答
风若远去何人留
2017-03-02 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

new没有定义

加一个new的定义就可以了

struct grade*head=NULL,*next,*tail;

改成

struct grade*head=NULL,*next,*tail,*new;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式