发新话题
打印

[求助]谁帮我看一下

这个程序要错应该是错在MAIN函数里面,看一下吧…………
#include <stdio.h>
#include <conio.h>

#define MAXSIZE 60

typedef struct node
{
int data;
int next;

}SLKNODE,SLKLIST[MAXSIZE];

void init(SLKLIST s)
{
int i;
for(i=0;i<MAXSIZE-1;i++) s.next=i+1;
s[MAXSIZE-1].next=0;

}

int mymalloc(SLKLIST s)
{
int i;
i=s[0].next;
if(i) s[0].next=s.next;
return i;

}

void myfree(SLKLIST s,int i)
{
s.next=s[0].next;
s[0].next=i;
}


int insort(SLKLIST s)
{
int head,p,q,r,item;
init(s);
scanf('%d',&item);

p=mymalloc(s);

if(p) head=p;

else {s[p].data=item;s[p].next=0;}

while(1)
{
  scanf('%d',&item);
  if(!item) break;

  r=mymalloc(s);

  if(!r)
  {
   printf('full,no more space\n');
   return r;
  }

  s[r].data=item;

  if(item<s[head].data)  {s[r].next=head; head=r;}

  else
  {
   p=head;
   while(p&&item>s[p].data)
   { q=p; p=s[q].next=r; }

  }

}
return head;

}

void main()
{
int head;
SLKLIST s;

head=insort(SLKLIST s);
printf('%d',head);
}

TOP

没集体细看,你说main()的话
这个不对:
SLKLIST是insort这个function的参数的类型,只有当声明function的时候才需要指明参数的类型,当使用的时候只要传入参数就可以了
所以是:head=insort(s);


C语言...好遥远的东西了,想起大学时候了,呵呵~~~

TOP

哦!!!!惭愧…………这么低级的错误…………到底一个寒假荒废了,jupiter 原来是前辈呢~~~偶还以为是小孩子的说:)

TOP

看了J2兄的回答,仿佛看到了我们公司程序员的身影浮现在眼前~~

      [wdb38]  [wdb38]  [wdb38]  [wdb38]

TOP

………………又一个隐藏的高手……………………555

TOP

发新话题