关于C语言线性表编译出错的问题!

#include<malloc.h>
#include<stdio.h>
typedef struct sys{
	int size;
	int musem;
	struct sys *next;
}node;
node *create(){
	node *head,*p,*r;
	int x,y;
	head=r=(node *)malloc(sizeof(node));
	printf("please input the num!");
	scanf("%d",&x);
	r.musem=x;
	r.size=1;
	while(y!=0){
	p=(node *)malloc(sizeof(node));
	scnaf("%d",&y);
	p.musem=y;
	p.size=r.size+1;
	r.next=p;
	r=p;
	}
	r.next=NULL;
	return *head;
}
main(){
	node *head,*p;
	char a;
	int c,i;
	head=create();
	printf("println all the num[y/n]?\n");
	p=head;
	scanf("%c",&a);
	if(a=="y")
	{
		while(p){
			println("size is%d\n;musem is%d\n",p.size,p.musem);
		       p=p.next;	
		}
	}
	else
	{
		printf("please input the num!\n");
		scanf("%d",&c);
		for(i=0;i<c;i++){
		if(i==c){
			p=p.next;
		}
		else
			printf("size is %d\n,musem is %d\n",p.size,p.musem);
		}
	}	
}

http://img.mukewang.com/560002b20001275b05970443.jpg

这是编译的报错,我为了方便就在windows上安装了个gcc编译器,每次写的线性表都会出错,这是线性表的链表

拜托哪位高手帮我解答一下

kkkbbb
浏览 1707回答 1
1回答

onemoo

好多错误......其实报错中都提示了:14 15 19 20 21 24 38行: 你定义p r为指针,访问指针所指对象的成员用 -> ,而不是 .(dot)18行: scanf拼错了25行: head是指针, *head解引用为node对象了,而函数要求的返回值类型就应该是指针。将head直接返回即可。35行: a是char型,而"y"是字符串,字符和字符串无法比较,应该使用单引号来表示字符 'y'
打开App,查看更多内容
随时随地看视频慕课网APP