大一新生求解答!!谢谢大家了
//预定义常量#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)
先给你说这么多,完全不知你的代码想干嘛。建议先把基础打好,其次可以把示例代码理解清楚,照着打个几十遍都可以。再自己动手也不迟
//预定义常量
#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: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> 这些自己看着书瞎琢磨的,结果出了一堆错,还想请教一下,打好基础的方法是什么,现在网课刚开始,我们老师的要求就是清华大学严蔚敏老师的视频,但是完全看不懂。
页:
[1]