为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
kkkbbb 2015-09-21 21:16:58
#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); } } }这是编译的报错,我为了方便就在windows上安装了个gcc编译器,每次写的线性表都会出错,这是线性表的链表拜托哪位高手帮我解答一下
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

好多错误......其实报错中都提示了:

  1. 14 15 19 20 21 24 38行: 你定义p r为指针,访问指针所指对象的成员用 -> ,而不是 .(dot)

  2. 18行: scanf拼错了

  3. 25行: head是指针, *head解引用为node对象了,而函数要求的返回值类型就应该是指针。将head直接返回即可。

  4. 35行: a是char型,而"y"是字符串,字符和字符串无法比较,应该使用单引号来表示字符 'y'

查看完整回答
1 反对 回复 2015-09-21
  • kkkbbb
    kkkbbb
    非常感谢!
  • onemoo
    onemoo
    对了,看到你用的是gcc。 在编译时最好加上 -Wall 参数,即 gcc -Wall xxx.c 。这样可以将所有的警告一并提示出来,能帮助你发现代码中可能的错误隐患。 最好追求代码不仅没有错误,而且也没有任何警告。
  • 1 回答
  • 0 关注
  • 1705 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信