谁能帮我找个c语言的错误啊
//建立给定的线性表L=(12,25,7,42,19,38),将21和15分别插入在第4和第六个元素前面
//删除线性表的第五和第三个元素
#include<stdio.h>
typedef int Elemtype;//线性表的元素类型为int
#define maxlen 10//分配的存储单元个数为10
#define N 6
struct ListSq
{
Elemtype e[maxlen];//存放元素
int len;//线性表长度
};
//顺序表的创建算法
void CreateSq(ListSq &L,Elemtype A[],int n)
{
int i;
for(i=0;i<n;i++)
L.e[i]=A[i];//给线性表的元素赋值
//L.len=n;//置线性表的长度
}
//顺序表的插入算法
void InsertList(ListSq &L,int i,Elemtype elem)
{
int j;
if(L.len>=maxsize)
{
printf("发生溢出!");
return ;
}
if((i<=0)||(i>=L.len))
printf("i值不合法!");
else
{
for(j=L.len-1;j>=i;j--)
L.e[j+1]=L.e[j];
L.e[i]=elem;
L.len++
}
}
//顺序表的删除算法
void DeleteList(ListSq &L,int i)
{
int j;
if(L.len==0)
{
printf("L线性表是空表!");
return;
}
if((i<1)||i>L.len)
printf("i的值不合法!");
else
{
for(j=i;j<L.len;j++)
L.e[j]=L.len[j+1];
L.len--;
}
}
//顺序表的输出算法
void PrintList(ListSq L)
{
int i;
printf("当前线性表:\n");
for(i=0;i<L.len;i++)
printf("%d\t",L.e[i]);
printf("\n");
}
//主函数
void main()
{
struct ListSq L;
int A[N];
int i,j,m,s,p,elem;
printf("请输入线性表的元素:\n");
for(j=0;j<N;j++)
scanf("%d",&A[j]);//将线性表的元素放在A数组中
CreateSq(L,A,N);//调用创建算法建立顺序表
PrintList(L);//输出所创建的顺序表
for( m=1;m<3;m++)
{
printf("请输入插入位置(指定元素的后面插入):\n");
scanf("%d",&i);
printf("请输入插入元素的值:\n");
scanf("%d",&elem);//输入插入元素的值
InsertList(L,i,elem);//调用插入算法
PrintList(L);//输出插入元素后的顺序表
}
for( s=1;s<3;s++)
{
printf("请输入删除位置:\n");
scanf("%d",&p);
DeleteList(L,p);//调用删除算法
PrintList(L);//输出删除元素后的顺序表
}
}
.c|14|error: expected ')' before '&' token|
.c|22|error: expected ')' before '&' token|
.c|41|error: expected ')' before '&' token|
.c|59|error: expected ')' before 'L'|
||=== 已完成构建: 4 个错误, 0 个警告 ===|
线性表 C
[解决办法]
L.e[i]=elem;
L.len++
后面缺个;
L.e[j]=L.len[j+1];
L.len--;
应该是L.e[j]=L.e[j+1]; L.len是int类型怎么变成数组了?
[解决办法]
老哥你太多错误了。
C语言的结构体定义类型要加上struct,
函数形参不能有&。
好多错误。
#include<stdio.h>
typedef int Elemtype;//线性表的元素类型为int
#define maxlen 10//分配的存储单元个数为10
#define N 6
struct ListSq
{
Elemtype e[maxlen];//存放元素
int len;//线性表长度
};
//顺序表的创建算法
void CreateSq(struct ListSq L,Elemtype A[],int n)
{
int i;
for(i=0;i<n;i++)
L.e[i]=A[i];//给线性表的元素赋值
//L.len=n;//置线性表的长度
}
//顺序表的插入算法
void InsertList(struct ListSq L,int i,Elemtype elem)
{
int j;
if(L.len>=maxlen)
{
printf("发生溢出!");
return ;
}
if((i<=0)
[解决办法]
(i>=L.len))
printf("i值不合法!");
else
{
for(j=L.len-1;j>=i;j--)
L.e[j+1]=L.e[j];
L.e[i]=elem;
L.len++;
}
}
//顺序表的删除算法
void DeleteList(struct ListSq L,int i)
{
int j;
if(L.len==0)
{
printf("L线性表是空表!");
return;
}
if((i<1)
[解决办法]
i>L.len)
printf("i的值不合法!");
else
{
for(j=i;j<L.len;j++)
L.e[j]=L.e[j+1];
L.len--;
}
}
//顺序表的输出算法
void PrintList(struct ListSq L)
{
int i;
printf("当前线性表:\n");
for(i=0;i<L.len;i++)
printf("%d\t",L.e[i]);
printf("\n");
}
//主函数
void main()
{
struct ListSq L;
int A[N];
int i,j,m,s,p,elem;
printf("请输入线性表的元素:\n");
for(j=0;j<N;j++)
scanf("%d",&A[j]);//将线性表的元素放在A数组中
CreateSq(L,A,N);//调用创建算法建立顺序表
PrintList(L);//输出所创建的顺序表
for( m=1;m<3;m++)
{
printf("请输入插入位置(指定元素的后面插入):\n");
scanf("%d",&i);
printf("请输入插入元素的值:\n");
scanf("%d",&elem);//输入插入元素的值
InsertList(L,i,elem);//调用插入算法
PrintList(L);//输出插入元素后的顺序表
}
for( s=1;s<3;s++)
{
printf("请输入删除位置:\n");
scanf("%d",&p);
DeleteList(L,p);//调用删除算法
PrintList(L);//输出删除元素后的顺序表
}
}
[解决办法]
你的代码既然是C语言的代码,C语言是没有引用的,你的第一个error在第14行,函数的参数你使用的是引用,
所以报错。
授人以鱼不如授人以渔,lz你的编译器告诉你你的代码的
14行有第一个error,接下来的是22,41,59行都有error,解决多个error的时候,
都是先解决第一个,然后再编译,因为第一个error出现之后有可能影响编译器后面的编译导致编译器
误报error。
.c
[解决办法]
14
[解决办法]
error: expected ')' before '&' token
[解决办法]
.c
[解决办法]
22
[解决办法]
error: expected ')' before '&' token
[解决办法]
.c
[解决办法]
41
[解决办法]
error: expected ')' before '&' token
[解决办法]
.c
[解决办法]
59
[解决办法]
error: expected ')' before 'L'