各位高手帮我看看下面的程序有什么问题(请大家帮帮小妹)

ayumixxx 2003-10-19 09:48:10
#include<iostream.h>
class listnode
{
public:
int data,num;
listnode *next;
};
class cirlinklist
{
public:
listnode *tail;
cirlinklist(void);
~cirlinklist(void);
void enterelement(int n);
void get(int m);
};
cirlinklist::cirlinklist(void)
{
tail=NULL;
}
cirlinklist::~cirlinklist(void)
{
if(tail==NULL)
delete tail;
}
void cirlinklist::enterelement(int n)
{
listnode *p;
int i;
for(i=1;i<=n;i++)
{
p=new listnode;
p->num=i;
cout<<"输入第"<<i<<"个密码";
cin>>p->data;
cout<<endl;
if(i==1)
{
tail=p;
p->next=p;
}
else
{ p->next=tail;
tail->next=p;
tail=p;
delete p;
}
}
}
void cirlinklist::get(int m)
{
if(tail==NULL)
cout<<"空,不能输出";
else{int k;
listnode *p,*q;
p=tail->next;
q=tail;
do{
for(k=1;k<m;k++)
{
p=p->next;
q=q->next;
}
m=p->data;
cout<<p->num;
q->next=p->next;
//listnode *p;
p=q->next;
}while(tail==NULL);
}
}
int main()
{
int m,n;
cout<<"输入元素的个数:";
cin>>n;
cout<<endl;
cout<<"输入开始的密码:";
cin>>m;
cirlinklist X;
X.enterelement(n);
X.get(m);
return 0;
}
这是我编的约瑟夫环的问题的C++;编异时说我最后一个花括号是非法字符;请大家帮帮小妹,因为很快就要交作业了,谢谢!
...全文
33 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
blankman 2003-10-20
  • 打赏
  • 举报
回复
cirlinklist::~cirlinklist(void)
{
if(tail==NULL)
delete tail;
}

不对吧? if(tail) delete tail;
xmasking 2003-10-20
  • 打赏
  • 举报
回复
void cirlinklist::get(int m)
{
if(tail==NULL)
cout<<"空,不能输出";
else{int k;
listnode *p,*q;
p=tail->next;
q=tail;
do{
for(k=1;k<m;k++)
{
p=p->next;
q=q->next;
}
m=p->data;
cout<<p->num;
q->next=p->next;
//listnode *p;
p=q->next;
}while(tail==NULL);
}
}
上面的函数的{}不配对。
huangjuliang 2003-10-19
  • 打赏
  • 举报
回复
下面是运行结果!


输入元素的个数:4

输入开始的密码:1
输入第1个密码2

输入第2个密码3

输入第3个密码4

输入第4个密码5

844586344
huangjuliang 2003-10-19
  • 打赏
  • 举报
回复
#include<iostream.h>
class listnode
{
public:
int data,num;
listnode *next;
};
class cirlinklist
{
public:
listnode *tail;
cirlinklist(void);
~cirlinklist(void);
void enterelement(int n);
void get(int m);
};
cirlinklist::cirlinklist(void)
{
tail=NULL;
}
cirlinklist::~cirlinklist(void)
{
if(tail==NULL)
delete tail;
}
void cirlinklist::enterelement(int n)
{
listnode *p;
int i;
for(i=1;i<=n;i++)
{
p=new listnode;
p->num=i;
cout<<"输入第"<<i<<"个密码";
cin>>p->data;
cout<<endl;
if(i==1)
{
tail=p;
p->next=p;
}
else
{ p->next=tail;
tail->next=p;
tail=p;
delete p;
}
}
}
void cirlinklist::get(int m)
{
if(tail==NULL)
cout<<"空,不能输出";
else{int k;
listnode *p,*q;
p=tail->next;
q=tail;
do{
for(k=1;k<m;k++)
{
p=p->next;
q=q->next;
}
m=p->data;
cout<<p->num;
q->next=p->next;
//listnode *p;
p=q->next;
}while(tail==NULL);
}
}
int main()
{
int m,n;
cout<<"输入元素的个数:";
cin>>n;
cout<<endl;
cout<<"输入开始的密码:";
cin>>m;
cirlinklist X;
X.enterelement(n);
X.get(m);
return 0;
}

这段代码没有任何问题呀!

我已经调试过了!
zoulijun 2003-10-19
  • 打赏
  • 举报
回复
mail 到dbca@21cn.com看看
weixing979 2003-10-19
  • 打赏
  • 举报
回复
非法字符,是不是中英文切换时有空格

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧