C语言新手关于数据结构的问题
一个作业:用顺序存储结构实现线性表,要求该线性表具有以下功能:根据输入的数据构建线性表;打印线性表的长度;数据元素的插入和删除;定位指定的数据元素;我的关于构建线性表程序...
一个作业:用顺序存储结构实现线性表,要求该线性表具有以下功能:
根据输入的数据构建线性表;
打印线性表的长度;
数据元素的插入和删除;
定位指定的数据元素;
我的关于构建线性表程序如下
#include<stdio.h>
#include<stdlib.h>
#define list_init_size 100
#define listincrement 10
#define ok 1
#define overflow -2
typedef int elemtype;
typedef int l_elem;
typedef int status;
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
int main(void)
{
int initlist_sq(sqlist &l);
return ok;
}
status initlist_sq(sqlist &l)
{
l.elem=(elemtype*)malloc(list_init_size*sizeof(elemtype));
if(!l.elem) exit(overflow);
l.length=0;
l.listsize=list_init_size;
printf("请为初始化顺序表输入整型元素:\n");
int x,p=0;
scanf("%d",&x);
while(x!=-1)
{
l.elem[p++]=x;
scanf("%d",&x);
return l.elem;
}
}
但系统提示错误为
:\MSDev98\MyProjects\vvxc\cdcz.cpp(34) : error C2440: 'return' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
请问如何修改
回答好了一定会加分,谢谢大家了 展开
根据输入的数据构建线性表;
打印线性表的长度;
数据元素的插入和删除;
定位指定的数据元素;
我的关于构建线性表程序如下
#include<stdio.h>
#include<stdlib.h>
#define list_init_size 100
#define listincrement 10
#define ok 1
#define overflow -2
typedef int elemtype;
typedef int l_elem;
typedef int status;
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
int main(void)
{
int initlist_sq(sqlist &l);
return ok;
}
status initlist_sq(sqlist &l)
{
l.elem=(elemtype*)malloc(list_init_size*sizeof(elemtype));
if(!l.elem) exit(overflow);
l.length=0;
l.listsize=list_init_size;
printf("请为初始化顺序表输入整型元素:\n");
int x,p=0;
scanf("%d",&x);
while(x!=-1)
{
l.elem[p++]=x;
scanf("%d",&x);
return l.elem;
}
}
但系统提示错误为
:\MSDev98\MyProjects\vvxc\cdcz.cpp(34) : error C2440: 'return' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
请问如何修改
回答好了一定会加分,谢谢大家了 展开
2个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
#define list_init_size 100
#define listincrement 10
typedef struct
{
int *elem;
int length;
int listsize;
}sqlist;
void initlist_sq(sqlist *l)
{
int x,p=0;
l->elem=(int*)malloc(list_init_size*sizeof(int));
l->length=0;
l->listsize=list_init_size;
printf("请为初始化顺序表输入整型元素:\n");
scanf("%d",&x);
while(x!=-1)
{
l->elem[p++]=x;
scanf("%d",&x);
}
}
void main()
{
sqlist l;
initlist_sq(&l);
}
在你的程序上改了一下,这是我习惯的代码格式,建议你不要一味的效仿书上的,那是类C语言,像你那样
typedef int elemtype;
typedef int status;显得毫无意义不如直接用int;
还有你定义的函数status initlist_sq(sqlist &l)参数中用了&号这在c语言是不支持的,那是c++语法,虽然可以在VC6.0运行。但是一般的纯C编译器是不能编译的。
你上面的错误是返回值 l.elem类型是int *型,但函数前是int型,所以不正确。本人觉得不需要返回值,直接带回就可以了。
最后一点if(!l.elem) exit(overflow);在现在的计算机一般不会存在分配不成功的,所以可以省略。
给你参考下
#include<stdlib.h>
#define list_init_size 100
#define listincrement 10
typedef struct
{
int *elem;
int length;
int listsize;
}sqlist;
void initlist_sq(sqlist *l)
{
int x,p=0;
l->elem=(int*)malloc(list_init_size*sizeof(int));
l->length=0;
l->listsize=list_init_size;
printf("请为初始化顺序表输入整型元素:\n");
scanf("%d",&x);
while(x!=-1)
{
l->elem[p++]=x;
scanf("%d",&x);
}
}
void main()
{
sqlist l;
initlist_sq(&l);
}
在你的程序上改了一下,这是我习惯的代码格式,建议你不要一味的效仿书上的,那是类C语言,像你那样
typedef int elemtype;
typedef int status;显得毫无意义不如直接用int;
还有你定义的函数status initlist_sq(sqlist &l)参数中用了&号这在c语言是不支持的,那是c++语法,虽然可以在VC6.0运行。但是一般的纯C编译器是不能编译的。
你上面的错误是返回值 l.elem类型是int *型,但函数前是int型,所以不正确。本人觉得不需要返回值,直接带回就可以了。
最后一点if(!l.elem) exit(overflow);在现在的计算机一般不会存在分配不成功的,所以可以省略。
给你参考下
展开全部
倒数第5行locateelem_sq(l,23,(15,15));改成locateelem_sq(l,23,equal);
把下面三个访问链表的函数定义一下:
Test.cpp(72)
:
error
C2065:
'listlength'
:
undeclared
identifier
Test.cpp(76)
:
error
C2065:
'getelem'
:
undeclared
identifier
Test.cpp(77)
:
error
C2065:
'equal'
:
undeclared
identifier
把下面三个访问链表的函数定义一下:
Test.cpp(72)
:
error
C2065:
'listlength'
:
undeclared
identifier
Test.cpp(76)
:
error
C2065:
'getelem'
:
undeclared
identifier
Test.cpp(77)
:
error
C2065:
'equal'
:
undeclared
identifier
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |