| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:[求助]一个小错误,不会改,改了很久,都改不了
只看楼主 加入收藏
autumnluo
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-12-7
收藏
 问题点数:0 回复次数:4 
[求助]一个小错误,不会改,改了很久,都改不了

#include<iostream.h>
struct Stack{
int *data;
int memNum;
int size;
};
int initStack(Stack &s,int size);
void delStack(Stack &s);
int popStack(Stack &s,int &num);
int pushStack(Stack &s,int mem);
//初始化栈
int initStack(Stack &s,int size)
{
s.data=new int[size];
if(s.data==NULL)
return 0;
s.memNum=0;
s.size=size;
return 1;
}
//释放栈
void delStack(Stack &s)
{delete[] s.data;}
//弹栈
int popStack(Stack &s,int &num)
{if(s.memNum==0)
return 0;
num=s.data[--s.memNum];
return 1;
}
//压栈
int popStack(Stack &s,int mem)
{if(s.memNum==s.size)
return 0;
s.data[s.memNum++]=mem;
return 1;
}
main()
{
int i,num;
Stack newStack;
initStack(newStack, 10);
//压栈
cout<<"push integer to stack:"<<endl;
for(i=0;i<10;i++)
{cout<<i<<" ";
pushStack(newStack,i);}
cout<<endl;
//弹栈
cout<<"Reading from function popStack:"<<endl;
for(i=0;i<10;i++)
{if(popStack(newStack,num))//这里发生错误,我不会改,有谁能帮我改改
cout<<num<<" ";}
cout<<endl<<endl;
//破坏性的使用栈
for(i=10;i<20;i++)
{newStack.data[newStack.memNum++]=i;}
cout<<"Reading from struct newStack:"<<endl;
for(i=0;i<10;i++)
{ cout<<newStack.data[i]<<" ";}
cout<<endl;
for(i=10;i<20;i++)
{ cout<<newStack.data[i]<<" ";}
cout<<endl;
//释放栈
delStack(newStack);
return 0;
}

2006-05-08 23:48
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
以下是引用autumnluo在2006-5-8 23:48:00的发言:

#include<iostream.h>
struct Stack{
int *data;
int memNum;
int size;
};
int initStack(Stack &s,int size);
void delStack(Stack &s);
int popStack(Stack &s,int &num);
int pushStack(Stack &s,int mem);
//初始化栈
int initStack(Stack &s,int size)
{
s.data=new int[size];
if(s.data==NULL)
return 0;
s.memNum=0;
s.size=size;
return 1;
}
//释放栈
void delStack(Stack &s)
{delete[] s.data;}
//弹栈
int popStack(Stack &s,int &num)
{if(s.memNum==0)
return 0;
num=s.data[--s.memNum];
return 1;
}
//压栈
int pushStack(Stack &s,int mem)
{if(s.memNum==s.size)
return 0;
s.data[s.memNum++]=mem;
return 1;
}
main()
{
int i,num;
Stack newStack;
initStack(newStack, 10);
//压栈
cout<<"push integer to stack:"<<endl;
for(i=0;i<10;i++)
{cout<<i<<" ";
pushStack(newStack,i);}
cout<<endl;
//弹栈
cout<<"Reading from function popStack:"<<endl;
for(i=0;i<10;i++)
{if(popStack(newStack,num))
cout<<num<<" ";}
//这里好象没有错误,只是多余了点建议改成
//while(popStack(newStack,num))cout<<num<<" ";
cout<<endl<<endl;
//破坏性的使用栈
for(i=10;i<20;i++)
{newStack.data[newStack.memNum++]=i;}
cout<<"Reading from struct newStack:"<<endl;
for(i=0;i<10;i++)
{ cout<<newStack.data[i]<<" ";}
cout<<endl;
for(i=10;i<20;i++)//这个循环有错误,越界了
{ cout<<newStack.data[i]<<" ";}
cout<<endl;
//释放栈
delStack(newStack);
return 0;
}



[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-09 03:04
autumnluo
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-12-7
收藏
得分:0 
好像不行呀,能不能运行一下,行了再传给我,谢谢!

有兴越可以交个朋友哦!
2006-05-09 07:55
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
运行过了,跟先前的建议一样,只是那个注释符不是英文界面时打的,所以出现错误,其他的没有区别
#include<iostream>
using namespace std;
struct Stack{
int *data;
int memNum;
int size;
};
int initStack(Stack &s,int size);
void delStack(Stack &s);
int popStack(Stack &s,int &num);
int pushStack(Stack &s,int mem);
//初始化栈
int initStack(Stack &s,int size)
{
s.data=new int[size];
if(s.data==NULL)
return 0;
s.memNum=0;
s.size=size;
return 1;
}
//释放栈
void delStack(Stack &s)
{delete[] s.data;}
//弹栈
int popStack(Stack &s,int &num)
{if(s.memNum==0)
return 0;
num=s.data[--s.memNum];
return 1;
}
//压栈
int pushStack(Stack &s,int mem)
{if(s.memNum==s.size)
return 0;
s.data[s.memNum++]=mem;
return 1;
}
main()
{
int i,num;
Stack newStack;
initStack(newStack, 10);
//压栈
cout<<"push integer to stack:"<<endl;
for(i=0;i<10;i++)
{cout<<i<<" ";
pushStack(newStack,i);}
cout<<endl;
//弹栈
cout<<"Reading from function popStack:"<<endl;
for(i=0;i<10;i++)
{if(popStack(newStack,num))
cout<<num<<" ";}
//这里好象没有错误,只是多余了点建议改成
//while(popStack(newStack,num))cout<<num<<" ";
cout<<endl<<endl;
//破坏性的使用栈
for(i=10;i<20;i++)
{newStack.data[newStack.memNum++]=i;}
cout<<"Reading from struct newStack:"<<endl;
for(i=0;i<10;i++)
{ cout<<newStack.data[i]<<" ";}
cout<<endl;
/*for(i=10;i<20;i++)//这个循环有错误,越界了
{ cout<<newStack.data[i]<<" ";}*/
cout<<endl;
//释放栈
delStack(newStack);
system("pause");
r

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-09 13:20
cabbagehead
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-6
收藏
得分:0 
这种错误最让人郁闷了

大地在我脚下,万物在我手中。
2006-05-15 19:14
快速回复:[求助]一个小错误,不会改,改了很久,都改不了
数据加载中...
 
   



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

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