#include<stdlib.h>
#include<stdio.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
//定义顺序表存储结构
typedef struct
{
ElemType * elem;
int length;
int listsize;
}Sqlist;
//初始化顺序表
void main()
{
Sqlist L;
int Sqlen;
Status Initlist_Sq(Sqlist &L);
int CreateList(Sqlist &L,int len);
if(!Initlist_Sq(L))
{
printf("初始化顺序表失败!\n");
exit(ERROR);
}
printf("输入顺序表个数:");
scanf_s("%d",&Sqlen);
CreateList(L,Sqlen);
}
Status Initlist_Sq(Sqlist &L)
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem)
exit(ERROR);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}
void CreateList(Sqlist &L,int len)
{
if(len>LIST_INIT_SIZE)//顺序表大小大于初始化大小,重新分配空间
{
L.elem=(ElemType *)realloc(L.elem,len * sizeof(ElemType));
L.listsize=len;
}
printf("请输入顺序表元素:\n");
for(int i=0;i<=len-1;i++)
{
scanf_s("%d",&L.elem[i]);
}
L.length=len;
printf("建立的顺序表为:\n");
for(i=0;i<=len-1;i++)
{
printf("%d",L.elem[i]);
}
printf("\n顺序表一共%d个元素。\n",L.length);
}
提示语法错误如下
>生成启动时间为 2010/12/16 9:31:39。
1>ClCompile:
1> 顺序表的算法实现.c
1>d:\课程设计\顺序表的算法实现.c(29): error C2143: 语法错误 : 缺少“)”(在“&”的前面)
1>d:\课程设计\顺序表的算法实现.c(29): error C2143: 语法错误 : 缺少“;”(在“&”的前面)
1>d:\课程设计\顺序表的算法实现.c(29): error C2059: 语法错误:“)”
1>d:\课程设计\顺序表的算法实现.c(30): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>d:\课程设计\顺序表的算法实现.c(39): warning C4013: “CreateList”未定义;假设外部返回 int
1>d:\课程设计\顺序表的算法实现.c(41): error C2061: 语法错误: 标识符“Initlist_Sq”
1>d:\课程设计\顺序表的算法实现.c(41): error C2059: 语法错误:“;”
1>d:\课程设计\顺序表的算法实现.c(41): error C2059: 语法错误:“类型”
1>d:\课程设计\顺序表的算法实现.c(51): error C2143: 语法错误 : 缺少“)”(在“&”的前面)
1>d:\课程设计\顺序表的算法实现.c(51): error C2143: 语法错误 : 缺少“{”(在“&”的前面)
1>d:\课程设计\顺序表的算法实现.c(51): error C2059: 语法错误:“&”
1>d:\课程设计\顺序表的算法实现.c(51): error C2059: 语法错误:“)”
1>
1>生成失败。
1>
1>已用时间 00:00:00.36
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
请高手指点。
用vs2010编了以下程序 #include<stdlib.h> #include<stdio.h> #define OVERFLOW -2 #define OK 1 #def
答案:4 悬赏:40
解决时间 2021-02-21 08:37
- 提问者网友:先森请一心
- 2021-02-21 00:44
最佳答案
- 二级知识专家网友:堕落奶泡
- 2021-02-21 02:00
看到这个程序我总算知道什么叫蛋疼了!!,首先你的程序结构也真够乱的,而且思路是一塌糊涂,尽管你对一些语法还是掌握了,但是对程序的设计思想和流程,以及程序结构的组织,太乱了。
#include<stdlib.h>
#include<stdio.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
//定义顺序表存储结构
//你这个顺序表,实际就是个动态数组,也没必要弄这么麻烦
typedef struct
{
ElemType * elem;//动态数组的头指针
int length;//你用一个length存储了数组当前元素的个数
int listsize;//用listsize存储了整个动态数组的长度
}Sqlist;//这个结构的名字我还误以为是个链表呢!!
//初始化顺序表
void main()
{
Sqlist L;
int Sqlen;
//下面这两句话真令人费解,你这是对函数的声明吗!!
//对函数的声明有必要要放到函数里面去吗,为什么不放到main函数
//的开头呢,难道有人说要把函数声明放到main函数里面吗?? 真是费解
//一般情况下,函数的声明放到main函数前面,或者干脆把函数放到main函数
//前,就不用写声明了
Status Initlist_Sq(Sqlist &L);
void CreateList(Sqlist &L,int len);//你的声明返回类型不一样!!
//这个是初始化链表,初始化和create需要分?用两个函数吗!!
if(!Initlist_Sq(L))//你在初始化中出错的时候用exit(0),你觉得出错的时候这个函数会返回吗!
{
//下面两句话根本不可能执行
printf("初始化顺序表失败!\n");
exit(ERROR);
}
//然后你又输入顺序表的个数,我就不明白了,你为什么不让客户先输入顺序表的个数后,
//根据客户输入的个数来初始化顺序表的大小,非要自己定义个什么#define LIST_INIT_SIZE 100
//有这个必要吗!,人家开始输入多少个,你就建立一个多大的不就好了,还弄了个默认的,
//然后在改成用户输入的,这。。。真是无语。
printf("输入顺序表个数:");
scanf_s("%d",&Sqlen);//scanf_s这个不是标准c,为什么不用scanf,弄不懂
CreateList(L,Sqlen);
}
Status Initlist_Sq(Sqlist &L)
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem)
exit(ERROR);//这里用exit,一个程序里面有必要用exit吗??用return 不好吗!
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}
void CreateList(Sqlist &L,int len)
{
if(len>LIST_INIT_SIZE)//顺序表大小大于初始化大小,重新分配空间
{
L.elem=(ElemType *)realloc(L.elem,len * sizeof(ElemType));
L.listsize=len;
}
printf("请输入顺序表元素:\n");
for(int i=0;i<=len-1;i++)
{
scanf_s("%d",&L.elem[i]);
}
L.length=len;
printf("建立的顺序表为:\n");
for(int i=0;i<=len-1;i++)
{
printf("%d",L.elem[i]);
}
printf("\n顺序表一共%d个元素。\n",L.length);
}
我这人说话不好听,不过作为程序员,程序的结构是最低的素养,尽管你掌握了程序语法,但是你的组织和逻辑形式不好,你的程序就是烂白菜,没人看,也没人用。这就像写作文,你会用词,但是你的文章组织的不好,每一段的中心思想不突出,有谁会去读,有谁能读懂呢。
希望你是个初学者,以后多看两本书,好好理理思路!
#include<stdlib.h>
#include<stdio.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
//定义顺序表存储结构
//你这个顺序表,实际就是个动态数组,也没必要弄这么麻烦
typedef struct
{
ElemType * elem;//动态数组的头指针
int length;//你用一个length存储了数组当前元素的个数
int listsize;//用listsize存储了整个动态数组的长度
}Sqlist;//这个结构的名字我还误以为是个链表呢!!
//初始化顺序表
void main()
{
Sqlist L;
int Sqlen;
//下面这两句话真令人费解,你这是对函数的声明吗!!
//对函数的声明有必要要放到函数里面去吗,为什么不放到main函数
//的开头呢,难道有人说要把函数声明放到main函数里面吗?? 真是费解
//一般情况下,函数的声明放到main函数前面,或者干脆把函数放到main函数
//前,就不用写声明了
Status Initlist_Sq(Sqlist &L);
void CreateList(Sqlist &L,int len);//你的声明返回类型不一样!!
//这个是初始化链表,初始化和create需要分?用两个函数吗!!
if(!Initlist_Sq(L))//你在初始化中出错的时候用exit(0),你觉得出错的时候这个函数会返回吗!
{
//下面两句话根本不可能执行
printf("初始化顺序表失败!\n");
exit(ERROR);
}
//然后你又输入顺序表的个数,我就不明白了,你为什么不让客户先输入顺序表的个数后,
//根据客户输入的个数来初始化顺序表的大小,非要自己定义个什么#define LIST_INIT_SIZE 100
//有这个必要吗!,人家开始输入多少个,你就建立一个多大的不就好了,还弄了个默认的,
//然后在改成用户输入的,这。。。真是无语。
printf("输入顺序表个数:");
scanf_s("%d",&Sqlen);//scanf_s这个不是标准c,为什么不用scanf,弄不懂
CreateList(L,Sqlen);
}
Status Initlist_Sq(Sqlist &L)
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem)
exit(ERROR);//这里用exit,一个程序里面有必要用exit吗??用return 不好吗!
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}
void CreateList(Sqlist &L,int len)
{
if(len>LIST_INIT_SIZE)//顺序表大小大于初始化大小,重新分配空间
{
L.elem=(ElemType *)realloc(L.elem,len * sizeof(ElemType));
L.listsize=len;
}
printf("请输入顺序表元素:\n");
for(int i=0;i<=len-1;i++)
{
scanf_s("%d",&L.elem[i]);
}
L.length=len;
printf("建立的顺序表为:\n");
for(int i=0;i<=len-1;i++)
{
printf("%d",L.elem[i]);
}
printf("\n顺序表一共%d个元素。\n",L.length);
}
我这人说话不好听,不过作为程序员,程序的结构是最低的素养,尽管你掌握了程序语法,但是你的组织和逻辑形式不好,你的程序就是烂白菜,没人看,也没人用。这就像写作文,你会用词,但是你的文章组织的不好,每一段的中心思想不突出,有谁会去读,有谁能读懂呢。
希望你是个初学者,以后多看两本书,好好理理思路!
全部回答
- 1楼网友:兮沫♡晨曦
- 2021-02-21 05:21
#include<stdlib.h>
#include<stdio.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
//定义顺序表存储结构
typedef struct
{
ElemType * elem;
int length;
int listsize;
}Sqlist;
//初始化顺序表
void main()
{
Sqlist L;
int Sqlen;
Status Initlist_Sq(Sqlist &L);
void CreateList(Sqlist &L,int len);
if(!Initlist_Sq(L))
{
printf("初始化顺序表失败!\n");
exit(ERROR);
}
printf("输入顺序表个数:");
scanf("%d",&Sqlen); //标准输入函数是 scanf
CreateList(L,Sqlen);
}
Status Initlist_Sq(Sqlist &L)
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem)
exit(ERROR);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}
void CreateList(Sqlist &L,int len) //返回值不一样,一个是void 一个是int所以说没有定义
{
if(len>LIST_INIT_SIZE)//顺序表大小大于初始化大小,重新分配空间
{
L.elem=(ElemType *)realloc(L.elem,len * sizeof(ElemType));
L.listsize=len;
}
printf("请输入顺序表元素:\n");
for(int i=0;i<=len-1;i++)
{
scanf("%d",&L.elem[i]);
}
L.length=len;
printf("建立的顺序表为:\n");
for(i=0;i<=len-1;i++)
{
printf("%d",L.elem[i]);
}
printf("\n顺序表一共%d个元素。\n",L.length);
}
//} 多了一个括号
- 2楼网友:晚安听书人
- 2021-02-21 03:58
你代码贴错了吧,定义的是lise_init_size 后面用的是list_init_size,怎么没看到报list_init_size未定义的错误
- 3楼网友:青春如此荒謬
- 2021-02-21 02:47
Status Initlist_Sq(Sqlist &L); 改成 Initlist_Sq(&L);调用函数格式是 :函数名(参数..);
下面的函数调用都是这样的,全改掉。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯