按照网课输入下列代码,一直报错。
看起来应该是 结构体 部分有错
但是网课的代码就这么写的……
求问大家怎么修改!
#include
typedef struct Lnode *List;
struct Lnode{
int a[100];
int length;
};
int sequentialSearch(list tb1,int k);
int main(void)
{
int n,key;
int a[100];
scanf("%d",&n);
for(int i = 0 ; i < n ; i++)
scanf("%d",&a[i]);
scanf("%d",&key);
printf("%d "sequentialSearch(a,key));
}
int sequentialSearch(list tb1,int k){
int i;
tb1->a[0] = k;
for(i = tb1->length; &&tb1->a[i] != k;i--)
;
return i;
}
感觉题主很像我刚学C语言的时候,有问题不知该怎么办
下面是我的解决方案
//头文件没有包#include<stdio.h>typedefstructLnodeList;//你这里typedef类型重定义为List后面用的是liststructLnode{inta[100];intlength;};intsequentialSearch(List*tb1,intk);intmain(void){intn,key;scanf("%d",&n);//定义一个ListListtb1;//输入你要查找的值scanf("%d",&key);for(inti=0;i<n;i++){//这块应该是循环输入scanf("%d",&(tb1.a[i]));}//1.这里""后面缺少,//2.函数参数类型为List类型printf("%d",sequentialSearch(&tb1,key));}intsequentialSearch(List*tb1,intk){inti;tb1->a[0]=k;for(i=tb1->length;i>0&&tb1->a[i]!=k;i--);returni;}
发现两个问题吧,
一,include后面没有要包含的文件,空的一个include也是有问题的。
二,在结构体定义之前,就先typedef这个结构体,所以编译器不知道这里tepydef的是个啥,报的未声明的错误。修改如下:
//#include//或者删除
structLnode{
inta[100];
intlength;
};
typedefstructLnode*List;
//或者
typedefstructLnode{
inta[100];
intlength;
}*List;
这个两个修改应该都行,你试试。
PS:因为刚好要下载资源没分数,所以过来看看能不能挣点分数,还请采纳哈。
注意你的大小写Listlist
main是有类型的,是不是要有返回值呢?
二楼说的你写错了大小写字母,也是问题,看这个编译报错,应该就是这个大小写。
修改如下:
typedefstructLnode{
inta[100];
intlength;
}Lnode,*List;
i=tb1->length-1;
1.结构体定义要在使用前2.注意大小写的问题。定义的是List,声明时应使用Listlist
你一开始就用typedef声明结构,一开始不能用typedef声明结构
声明时使用Listlist
1.结构体定义要在使用前2.注意大小写的问题。定义的是List,声明时应使用Listlist3.。。。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。