鱼C论坛

 找回密码
 立即注册
查看: 3467|回复: 3

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

[复制链接]
发表于 2020-3-1 23:51:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
//预定义常量
#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[i]);
        return ;
}
//在某个位置增加元素
void Listinsert(&L,m,n)//m为插入元素的位置,n为插入元素的值
{
        int m,n,*q,*p;
        q=&L.length[m-1];
        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[p++];
        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)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-2 00:01:40 | 显示全部楼层
先给你说这么多,完全不知你的代码想干嘛。建议先把基础打好,其次可以把示例代码理解清楚,照着打个几十遍都可以。再自己动手也不迟
  1. //预定义常量
  2. #include<stdio.h>
  3. #include<stdlib.h> // malloc 在这里

  4. #define MAX 50
  5. #define listincrement 10

  6. typedef struct
  7. {
  8.         int *elem;
  9.         int length;
  10.         int listsize;
  11. }SqList;


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


  22.         return ;
  23. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 00:30:15 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-2 00:55 编辑
  1. #include<stdio.h>
  2. #include <stdlib.h>

  3. #define MAX 50//线性表存储空间的初始分配量
  4. #define listincrement 10//存储空间分配增量
  5. //定义一种结构类型
  6. typedef struct
  7. {
  8.         int * elem   ;
  9.         int length   ;
  10.         int listsize ;
  11. } SqList             ;
  12. //建立一个线性表
  13. void CreatList(SqList * L)
  14. {
  15.         int i                                                                    ;
  16.         L -> elem = (int *)malloc(MAX * sizeof(int))                             ;//赋予L Max大的基地址
  17.         if(L -> elem) {
  18.                 L -> listsize = 0                                                ;//就当前给表增加一个大小为listsize的数据元素空间
  19.                 L -> length = 8                                                  ;//表的长度为8
  20.                 printf("输入表的长度为:")                                       ;
  21.                 scanf("%d" , & L -> length)                                      ;
  22.                 for(i = 0 ; i < L -> length ; i ++) scanf("%d" , & L -> elem[i]) ;
  23.         }
  24. }
  25. //在某个位置增加元素
  26. void Listinsert(SqList * L)//m为插入元素的位置,n为插入元素的值
  27. {
  28.         int k , m , n                                                                           ;
  29.         printf("请输入要插入元素在表中的位置 : ")                                               ;
  30.         scanf("%d" , & m)                                                                       ;
  31.         if(m < 0) m = 0                                                                         ;
  32.         else if(m > L -> length) m = L -> length                                                ;
  33.         printf("请输入要插入元素的值 : ")                                                       ;
  34.         scanf("%d" , & n)                                                                       ;
  35.         if(m < L -> length) for(k = L -> length ; k > m ; k --) L -> elem[k] = L -> elem[k - 1] ;
  36.         L -> elem[m] = n                                                                        ;
  37.         L -> length ++                                                                          ;
  38. }

  39. void ShowList(SqList * L)
  40. {
  41.         int k                                                             ;
  42.         printf("\n")                                                      ;
  43.         for(k = 0 ; k < L -> length ; k ++) printf("%d\n" , L -> elem[k]) ;
  44.         printf("\n")                                                      ;
  45. }

  46. int main(void)
  47. {
  48.         SqList L         ;
  49.         CreatList(& L)   ;
  50.         Listinsert(& L)  ;
  51.         ShowList(& L)    ;
  52.         Listinsert(& L)  ;
  53.         ShowList(& L)    ;
  54.         Listinsert(& L)  ;
  55.         ShowList(& L)    ;
  56. }
复制代码

        编译、运行实况:
  1. C:\Bin>g++ -o x x.c

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

  9. 1
  10. 2
  11. 3
  12. 4

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

  15. 0
  16. 1
  17. 2
  18. 3
  19. 4

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

  22. 0
  23. 1
  24. 5
  25. 2
  26. 3
  27. 4


  28. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 15:42:24 | 显示全部楼层
这些自己看着书瞎琢磨的,结果出了一堆错,还想请教一下,打好基础的方法是什么,现在网课刚开始,我们老师的要求就是清华大学严蔚敏老师的视频,但是完全看不懂。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 12:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表