micial 发表于 2020-3-1 23:51:22

大一新生求解答!!谢谢大家了

//预定义常量
#include<stdio.h>
#define MAX 50//线性表存储空间的初始分配量
#define listincrement 10//存储空间分配增量
//定义一种结构类型
typedef struct
{
        int *elem;
        int length;
        int listsize;
}SqList;
//建立一个线性表
void CreatList(SqList &L)
{
        L.elem=(int*)malloc(Max*sizeof(int));//赋予L Max大的基地址
        if(!L.elem)
                return 0;//若赋予失败返回
        L.listsize=0;//就当前给表增加一个大小为listsize的数据元素空间
        L.length=8;//表的长度为8
        printf("输入表的长度为:");
        scanf("%d",&L.length);
        for(int i=0;i<L.length;i++)
                scanf("%d",&L.length);
        return ;
}
//在某个位置增加元素
void Listinsert(&L,m,n)//m为插入元素的位置,n为插入元素的值
{
        int m,n,*q,*p;
        q=&L.length;
        p=L.length
          printf("请输入要插入元素在表中的位置:\n");
                scanf("%d",&m);
                printf("请输入要插入元素的值\n");
                scanf("%d",&n);
        if(m<0||m>L.length)
                return 0;

        for(p>q;p<=L.length;p++)
                L.elem;
        L.length++;
        return 0;
}
int main()
{
CreatList(SqList &L);
Listinsert(&L,3,8);
return 0;
}
C:\Users\Administrator\Desktop\p2.cpp(15) : error C2065: 'malloc' : undeclared identifier
C:\Users\Administrator\Desktop\p2.cpp(15) : error C2065: 'Max' : undeclared identifier
C:\Users\Administrator\Desktop\p2.cpp(17) : error C2562: 'CreatList' : 'void' function returning a value
      C:\Users\Administrator\Desktop\p2.cpp(13) : see declaration of 'CreatList'
C:\Users\Administrator\Desktop\p2.cpp(23) : error C2109: subscript requires array or pointer type
C:\Users\Administrator\Desktop\p2.cpp(23) : error C2102: '&' requires l-value
C:\Users\Administrator\Desktop\p2.cpp(27) : error C2065: 'L' : undeclared identifier
C:\Users\Administrator\Desktop\p2.cpp(27) : error C2065: 'm' : undeclared identifier
C:\Users\Administrator\Desktop\p2.cpp(27) : error C2065: 'n' : undeclared identifier
C:\Users\Administrator\Desktop\p2.cpp(28) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
C:\Users\Administrator\Desktop\p2.cpp(46) : error C2275: 'SqList' : illegal use of this type as an expression
      C:\Users\Administrator\Desktop\p2.cpp(11) : see declaration of 'SqList'
C:\Users\Administrator\Desktop\p2.cpp(47) : error C2065: 'Listinsert' : undeclared identifier
执行 cl.exe 时出错.

p2.obj - 1 error(s), 0 warning(s)

ba21 发表于 2020-3-2 00:01:40

先给你说这么多,完全不知你的代码想干嘛。建议先把基础打好,其次可以把示例代码理解清楚,照着打个几十遍都可以。再自己动手也不迟
//预定义常量
#include<stdio.h>
#include<stdlib.h> // malloc 在这里

#define MAX 50
#define listincrement 10

typedef struct
{
      int *elem;
      int length;
      int listsize;
}SqList;


void CreatList(SqList *L) // 指针在形参中是* ,&是取地址(取)
{
        int i;
      L->elem=(int*)malloc(MAX *sizeof(int)); // 指针运算符->,   Max MAX C语言是大小写敏感的语言
      if(!L->elem)
                return; // void 没返回值
      L->listsize=0; // LL又是什么玩意?
      L->length=8;
      printf("输入表的长度为:");
      scanf("%d",&L->length);


      return ;
}

jackz007 发表于 2020-3-2 00:30:15

本帖最后由 jackz007 于 2020-3-2 00:55 编辑

#include<stdio.h>
#include <stdlib.h>

#define MAX 50//线性表存储空间的初始分配量
#define listincrement 10//存储空间分配增量
//定义一种结构类型
typedef struct
{
      int * elem   ;
      int length   ;
      int listsize ;
} SqList             ;
//建立一个线性表
void CreatList(SqList * L)
{
      int i                                                                  ;
      L -> elem = (int *)malloc(MAX * sizeof(int))                           ;//赋予L Max大的基地址
      if(L -> elem) {
                L -> listsize = 0                                                ;//就当前给表增加一个大小为listsize的数据元素空间
                L -> length = 8                                                ;//表的长度为8
                printf("输入表的长度为:")                                       ;
                scanf("%d" , & L -> length)                                    ;
                for(i = 0 ; i < L -> length ; i ++) scanf("%d" , & L -> elem) ;
      }
}
//在某个位置增加元素
void Listinsert(SqList * L)//m为插入元素的位置,n为插入元素的值
{
      int k , m , n                                                                           ;
      printf("请输入要插入元素在表中的位置 : ")                                             ;
      scanf("%d" , & m)                                                                     ;
      if(m < 0) m = 0                                                                         ;
      else if(m > L -> length) m = L -> length                                                ;
      printf("请输入要插入元素的值 : ")                                                       ;
      scanf("%d" , & n)                                                                     ;
      if(m < L -> length) for(k = L -> length ; k > m ; k --) L -> elem = L -> elem ;
      L -> elem = n                                                                        ;
      L -> length ++                                                                        ;
}

void ShowList(SqList * L)
{
      int k                                                             ;
      printf("\n")                                                      ;
      for(k = 0 ; k < L -> length ; k ++) printf("%d\n" , L -> elem) ;
      printf("\n")                                                      ;
}

int main(void)
{
      SqList L         ;
      CreatList(& L)   ;
      Listinsert(& L);
      ShowList(& L)    ;
      Listinsert(& L);
      ShowList(& L)    ;
      Listinsert(& L);
      ShowList(& L)    ;
}
      编译、运行实况:
C:\Bin>g++ -o x x.c

C:\Bin>x
输入表的长度为:3
1
2
3
请输入要插入元素在表中的位置 : 4
请输入要插入元素的值 : 4

1
2
3
4

请输入要插入元素在表中的位置 : 0
请输入要插入元素的值 : 0

0
1
2
3
4

请输入要插入元素在表中的位置 : 2
请输入要插入元素的值 : 5

0
1
5
2
3
4


C:\Bin>

micial 发表于 2020-3-2 15:42:24

这些自己看着书瞎琢磨的,结果出了一堆错,还想请教一下,打好基础的方法是什么,现在网课刚开始,我们老师的要求就是清华大学严蔚敏老师的视频,但是完全看不懂。
页: [1]
查看完整版本: 大一新生求解答!!谢谢大家了