顺序表
我根据书本打的,为什么是错的#include <stdio.h>typedef int datatype;
#define maxsize 1024
void main()
{
typedef struct
{
datatype data;
int last;
}sequenlist;
}
int INSERT(L,x,i);
sequenlist *L;
int i;
{int j;
if(((*L).last)>=maxsize-1)
{print("overflow");return NULL;}
else
if((i<1)||((*L).last)+1)
{print("error");return null;}
else
{for(j=(*L).last;j>=i-1;j--)
(*L).data=(*L).data;
(*L).data=x;
(*L).last=(*L).last+1;
}
return(1);
}
int DELETE(L,i)
sequenlist *L;
int i;
{
int j;
if((i<1)||(i>(*L).last+1))
{printf("error");return null;}
else
{
for(j=i;j<=(*L).last;j++)
(*L).data=(*L).data;
(*L).last--;
}
return(1);
}
首先你打的。。顺序完全不对对sequenlist结构应放在main函数外面然后main函数放最下面或者是在main函数前面放定义 首先你打的。。顺序完全不对对sequenlist结构应放在main函数外面然后main函数放最下面或者是在main函数前面放定义 首先,函数的定义应该在main函数的外部,而不是在内部。
其次,在函数的参数列表中,变量的类型应该在变量名之前,而不是在后面。
另外,函数体内的打印语句应该使用printf函数而不是print函数。
最后,当返回值为整数时,应该使用关键字"return"而不是"return null"。
参考代码:
#include <stdio.h>
typedef int datatype;
#define maxsize 1024
typedef struct
{
datatype data;
int last;
} sequenlist;
int INSERT(sequenlist *L, datatype x, int i)
{
int j;
if (L->last >= maxsize - 1)
{
printf("overflow");
return 0;
}
else if (i < 1 || i > L->last + 1)
{
printf("error");
return 0;
}
else
{
for (j = L->last; j >= i - 1; j--)
{
L->data = L->data;
}
L->data = x;
L->last = L->last + 1;
}
return 1;
}
int DELETE(sequenlist *L, int i)
{
int j;
if (i < 1 || i > L->last + 1)
{
printf("error");
return 0;
}
else
{
for (j = i; j <= L->last; j++)
{
L->data = L->data;
}
L->last--;
}
return 1;
}
int main()
{
sequenlist L;
// 其他操作...
return 0;
}
页:
[1]