约瑟夫问题源码(用c++编写)——————凌风
2009-09-16 17:20
405 查看
////用面向对象的方法编程解决约瑟夫问题////
#include<iostream>
#include<casssert>//<cassert>-用于在程序执行时执行
断言
using namespace std;
class Joseph{
protected:
int number_of_people;//围坐在一起的人数
int step;//每次数的人的个数
public:
virtual void CreatOutput()=0;
joseph(int n,int m){
number_of_people=n;
step=m;
}
};//声明类的作用是做什么?
class JosephWithArray:public Joseph{
int*WorkingArray;
int NextPeople(int prev);
//上面三行的作用分别是?
public:
JosephWithArray9int n,int m);
void GreatOutput();
~JosephWithArray(){delete[]workingArray;}//~
是什么?
};
JosephWithArray::JosephWithArray(int n,int
m):Joseph(n,m){
WorkingArray=new int
;
for(int i=o;i<n,i++)
WorkingArray[i]=i+1;
}
void JosephWithArray::CreatOutput(){
int i;
int outnum=-1;
for(i=0;i<number_of__people);i++){
outnum=NextPeople(outnum);
assert(outnum>-1&&outnum<number_of_number);
cout<<WorkingArray[outnum]<<"";
WorkingArray[outnum]=0;
}
cout<<endl;
}
int JosephWithArray::NextPeople(int prev){
int count=0;
int travel=prev;
int emptyplace=0;
while(count<step){
travel=(travel+1)%number_of_people;
if(WorkingArray[travel]{
count++;
emptyplace=0;
}
else{
emptyplace++;
if(emptyplace==number_of_people)
return -1;
}
}
retrun travel:
}
int main(){
int n,m;
cout<<"please input number of people:"
cin>>n;
cout<<"please input step:"
cin>>m
JosephWithArray obj(n,m);//这里有一个不明白的地方
obj.CreatOut();
}
这是我从书上敲进电脑的,怎么用VC运行时出现了很多BUGS,我还要一步步调试,请帮我找找问题
#include<iostream>
#include<casssert>//<cassert>-用于在程序执行时执行
断言
using namespace std;
class Joseph{
protected:
int number_of_people;//围坐在一起的人数
int step;//每次数的人的个数
public:
virtual void CreatOutput()=0;
joseph(int n,int m){
number_of_people=n;
step=m;
}
};//声明类的作用是做什么?
class JosephWithArray:public Joseph{
int*WorkingArray;
int NextPeople(int prev);
//上面三行的作用分别是?
public:
JosephWithArray9int n,int m);
void GreatOutput();
~JosephWithArray(){delete[]workingArray;}//~
是什么?
};
JosephWithArray::JosephWithArray(int n,int
m):Joseph(n,m){
WorkingArray=new int
;
for(int i=o;i<n,i++)
WorkingArray[i]=i+1;
}
void JosephWithArray::CreatOutput(){
int i;
int outnum=-1;
for(i=0;i<number_of__people);i++){
outnum=NextPeople(outnum);
assert(outnum>-1&&outnum<number_of_number);
cout<<WorkingArray[outnum]<<"";
WorkingArray[outnum]=0;
}
cout<<endl;
}
int JosephWithArray::NextPeople(int prev){
int count=0;
int travel=prev;
int emptyplace=0;
while(count<step){
travel=(travel+1)%number_of_people;
if(WorkingArray[travel]{
count++;
emptyplace=0;
}
else{
emptyplace++;
if(emptyplace==number_of_people)
return -1;
}
}
retrun travel:
}
int main(){
int n,m;
cout<<"please input number of people:"
cin>>n;
cout<<"please input step:"
cin>>m
JosephWithArray obj(n,m);//这里有一个不明白的地方
obj.CreatOut();
}
这是我从书上敲进电脑的,怎么用VC运行时出现了很多BUGS,我还要一步步调试,请帮我找找问题
相关文章推荐
- C++编写HookJIT保护.NET源码
- OpenJudge 2746 约瑟夫问题 C++
- 赏月斋源码共享计划 第四期 约瑟夫问题
- 解决Visual Studio2008编写C++很纠结的一个问题
- c++ 编写程序开机自动启动,读取配置文件问题
- 关于在Silverlight中调用C++编写的DLL的问题
- 在64位机子调用vs编写的win32 c++程序遇到问题
- C++循环链表实现约瑟夫问题
- 编写程序实现约瑟夫(Josephu)问题(C)
- linux环境下c++的编写、调试以及makefile多文件连编需要注意的问题
- 遗传算法解TSP问题的C++源码
- 约瑟夫问题的实现(c++链表版)
- 问题:C++编写的核心模块如何暴露给外部HTTP Web服务接口???
- 从易到难编写C++程序,(5)问题:实现满足各种需求的随机整数生成类RandCreater
- C#调用C++编写的DLL函数各种参数传递问题
- java调用CC++编写的DLL文件问题
- c#程序调用c++编写dll需要注意问题
- 从易到难编写C++程序,(1)问题:把键盘输入的字符串逆序输出。
- 出圈问题C++源码(STLVector)
- 出圈问题C++源码(STLVector)