| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1204 人关注过本帖
标题:求这个程序的错误
只看楼主 加入收藏
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
 问题点数:0 回复次数:9 
求这个程序的错误

#include<iostrenm> #define LIST_INIT_SIZE 100 //初始分配量 #define LISTINCREMENT 10 //分配增量 using namespace std; typedef struct{ int *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量以sizeof(int)为单位 } int CreatList_Sq(SqList &L){ //构造一个顺序表 L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) exit(OVERFLOW); //分配失败 L.length=0; //空表长度为0 L.listsize=LIST_INIT_SIZE; //初始存储容量 for(i=0;i<LIST_INIT_SIZE;i++){ L.elem[i]=i; L.length++; }//Creatlist_Sq return OK; } int ListDelete_Sq(SqList &L,int i,int &e){ //在顺序线性表L中删除第i个元素,并用e返回其值 //i合法值为1<=i<=ListLength_Sq(L) int i,*p,*q; if((i<1)||(i>L.length)) return ERROR; //i值不合法 p=&(L.elem[i-1]); //p为被删除的元素的位置 e=*p; //被删除的元素的值赋给e q=L.elem+(L.length-1)*2; //表尾元素的位置 for(++p;p<=q;++p) *(p-1)=*p; --L.length; //表长减1 return OK; }//ListDelete_Sq int main(){ int deleted_location,deleted_element; cout<<"请输入你所要删除的元素位置:"; cin>>deleted_location; CreatList_Sq(SqList List); ListDelete_Sq(SqList List,int deleted_location,int deleted_element); cout>>"被删除的元素是:"; >>deleted_element; }

经过编译后出现了这样一个问题:

c:\documents and settings\tony\桌面\新建文件夹\c++.cpp(1) : fatal error C1083: Cannot open include file: 'iostrenm': No such file or directory Error executing cl.exe.

怎样除错呢???(我的是VC++6.0,创天中文版,还是盗版的)

要使用malloc函数,在C++里需要什么什么样的库函数呢???

关于main()函数的编写,在C++里,main()函数是有类型的,怎样确定是void型还是int型的呢???我的main()函数编写的正确吗???

请赐教,谢谢!

搜索更多相关主题的帖子: int LIST INIT elem 
2004-10-10 20:32
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

晕死!!!

是你自己写错了!! iostream _->iostrenm 当然打不开罗!!

————————————————

尽善尽美!!


2004-10-11 01:07
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

我的天,按照corrupt兄的指点,我又重新编译啦。

结果15 error(s), 1 warning(s)。天呀!

2004-10-11 12:40
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

main()函数的返回值会返回去哪里呢???

刚学《数据结构》,老师叫用VC++上机,好不适应呀!

2004-10-11 12:44
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

我看了半天 怎么没见 main 函数啊?

是不是抄书的啊??


2004-10-11 16:36
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

我晕,main()函数不是在最后面吗???

2004-10-11 22:13
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

#include<iostream> using namespace std;

#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OVERFLOW -1 #define OK 1 #define ERROR -1

struct SqList { int *elem; int length; int listsize; };

int CreatList_Sq(SqList &L) { int i; L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; for(i=0;i<LIST_INIT_SIZE;i++) { L.elem[i]=i; L.length++; }//Creatlist_Sq return OK; }

int ListDelete_Sq(SqList &L,int i,int &e) { int *p,*q; if((i<1)||(i>L.length)) return ERROR; p=&(L.elem[i-1]); e=*p; q=L.elem+(L.length-1); for(++p;p<=q;++p)     // 这个算法只是将后面的往前移,但最后一个元素没有清除掉,所以算法不对! *(p-1)=*p; --L.length; return OK; }//ListDelete_Sq

void ListDelete(SqList &L) { if(L.elem) free(L.elem); }

int main() { int deleted_location,deleted_element; cout<<"请输入你所要删除的元素位置:"; cin>>deleted_location; SqList List; CreatList_Sq(List); ListDelete_Sq(List,deleted_location,deleted_element); cout<<"被删除的元素是:"<<deleted_element; ListDelete(List); //动态开辟的内存需要清除掉.

return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-10-11 23:45
dlyy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-9-1
收藏
得分:0 
书上的有的只是片断。都不是完整的程序~~呵呵~~我也是刚学的~~项目需要,呵呵~~大家多多帮忙!
2004-10-12 09:23
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

自己对kai修改过程序的改进之处如下:

增加:1。#include<malloc.h> 因为在程序中使用了malloc();和free();。

2。free(q); 程序中q被用来指向最后一个元素。

#include<malloc.h> #include<iostream> using namespace std;

#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OVERFLOW -1 #define OK 1 #define ERROR -1

struct SqList{ int *elem; int length; int listsize; };

int CreatList_Sq(SqList &L){ int i; L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; for(i=0;i<LIST_INIT_SIZE;i++){ L.elem[i]=i; L.length++; } return OK; }//CreateList_Sq

int ListDelete_Sq(SqList &L,int i,int &e){ int *p,*q; if((i<1)||(i>L.length)) return ERROR; p=&(L.elem[i-1]); e=*p; q=L.elem+(L.length-1); for(++p;p<=q;++p)      *(p-1)=*p; free(q); --L.length; return OK; }//ListDelete_Sq

void ListDelete(SqList &L){ if(L.elem) free(L.elem); }

int main(){ int deleted_location,deleted_element; cout<<"请输入你所要删除的元素位置:"; cin>>deleted_location; SqList List; CreatList_Sq(List); ListDelete_Sq(List,deleted_location,deleted_element); cout<<"被删除的元素是:"<<deleted_element; ListDelete(List); //动态开辟的内存需要清除掉. return 0; }

但是还是有10个错误

2004-10-12 17:16
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

你在void ListDelete(SqList &L)函数里面free(L.elem); 清空了L.elem, 传址传进来的空地址p=&(L.elem[i-1]);

for(++p;p<=q;++p) *(p-1)=*p; //两个空地址在瞎掰……

你漏了#include<stdlib.h>,exit(int paramter)函数需要这个头文件支持。 另,不要按书上的变量名,长得可以,我看得头晕,变量名要有自己的特色,书上只是为了让你看得懂,而不是看得有效率。

[此贴子已经被作者于2004-10-13 01:00:33编辑过]

2004-10-13 00:59
快速回复:求这个程序的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017512 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved