鱼C论坛

 找回密码
 立即注册
查看: 2853|回复: 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[i]) ;
        }
}
//在某个位置增加元素
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[k] = L -> elem[k - 1] ;
        L -> elem[m] = n                                                                        ;
        L -> length ++                                                                          ;
}

void ShowList(SqList * L)
{
        int k                                                             ;
        printf("\n")                                                      ;
        for(k = 0 ; k < L -> length ; k ++) printf("%d\n" , L -> elem[k]) ;
        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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-19 08:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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