cabanne 发表于 2016-4-11 14:42:18

顺序表

我根据书本打的,为什么是错的#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);
}

wanli6599 发表于 2016-4-11 19:35:00

首先你打的。。顺序完全不对对sequenlist结构应放在main函数外面然后main函数放最下面或者是在main函数前面放定义

wanli6599 发表于 2016-4-11 19:35:40

首先你打的。。顺序完全不对对sequenlist结构应放在main函数外面然后main函数放最下面或者是在main函数前面放定义

不二如是 发表于 2023-11-30 08:42:21

首先,函数的定义应该在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]
查看完整版本: 顺序表