反馈 不良输出
Feedback + Bad output
所以我有一个任务,我认为我已经完成了或多或少的工作,但是有些东西会使输出陷入困境,在线的某个地方,甚至计算,我看不到问题在哪里。
任务是制作一场游戏,其中一定的玩家穿过隧道驶向一个地点,他们将停止并旋转它,然后他们的头晕应使他们随机地朝目标或目标迈进回归开始。每次他们将另一个位置更接近目标时,他们都会得到另一个"标记",然后继续这样做,直到其中一个达到目标为止。
。该程序包括三个文件:一个main.cpp,一个标头文件和另一个CPP文件。
标题文件:
#ifndef COMPETITOR_H
#define COMPETITOR_H
#include <string>
using namespace std;
class Competitor
{
public:
void setName();
string getName();
void spin();
void move();
int checkScore();
void printResult();
private:
string name;
int direction;
int markedSpots;
};
#endif // COMPETITOR_H
第二个CPP文件:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include "Competitor.h"
using namespace std;
void Competitor::setName()
{
cin>>name;
}
string Competitor::getName()
{
return name;
}
void Competitor::spin()
{
srand(time(NULL));
direction = rand()%1+0;
}
void Competitor::move()
{
if(direction == 1)
{
markedSpots++;
}
else if(direction == 0 && markedSpots != 0)
{
markedSpots--;
}
}
int Competitor::checkScore()
{
return markedSpots;
}
void Competitor::printResult()
{
if(direction == 1)
{
cout<<" is heading towards goal and has currently "<<markedSpots<<" markings.";
}
else if(direction == 0)
{
cout<<"n"<<getName()<<" is heading towards start and has currently "<<markedSpots<<" markings.";
}
}
主CPP文件:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include "Competitor.h"
using namespace std;
void inputAndSetNames(Competitor comps[],int nrOfComps);
void makeTwist(Competitor comps[],int nrOfComps);
void makeMove(Competitor comps[],int nrOfComps);
void showAll(Competitor comps[],int nrOfComps);
int winner(Competitor comps[],int nrOfComps, int nrOfTwistPlaces);
int main()
{
int nrOfTwistPlaces;
int nrOfComps;
int noWinner = -1;
int laps = 0;
cout<<"How many spinning places should there be? ";
cin>>nrOfTwistPlaces;
cout<<"How many competitors should there be? ";
cin>>nrOfComps;
Competitor * comps = new Competitor[nrOfComps];
inputAndSetNames(comps, nrOfComps);
do
{
laps++;
cout<<"nSpin "<<laps<<":";
makeTwist(comps, nrOfComps);
makeMove(comps, nrOfComps);
showAll(comps, nrOfComps);
}while(noWinner == -1);
delete [] comps;
return 0;
}
void inputAndSetNames(Competitor comps[],int nrOfComps)
{
cout<<"Type in the names of the "<<nrOfComps<<" competitors:n";
for(int i=0;i<nrOfComps;i++)
{
comps[i].setName();
}
cout<<"n";
}
void makeTwist(Competitor comps[],int nrOfComps)
{
for(int i=0;i<nrOfComps;i++)
{
comps[i].spin();
}
}
void makeMove(Competitor comps[],int nrOfComps)
{
for(int i=0;i<nrOfComps;i++)
{
comps[i].move();
}
}
void showAll(Competitor comps[],int nrOfComps)
{
for(int i=0;i<nrOfComps;i++)
{
comps[i].printResult();
}
cout<<"nn";
system("pause");
}
int winner(Competitor comps[],int nrOfComps, int nrOfTwistPlaces)
{
int end = 0;
int score = 0;
for(int i=0;i<nrOfComps;i++)
{
score = comps[i].checkScore();
if(score == nrOfTwistPlaces)
{
end = 1;
}
else end = -1;
}
return end;
}
如果您看到任何其他错误,我会很感激。
您需要初始化竞争者对象 - 添加构造函数:
Competitor::Competitor(void)
{
direction = 0;
markedSpots = 0;
}
另外,您调用 rand(),然后使用%操作员进行" mod"函数 - rand()%1 0 。首先,当我们在这里时 - 为什么要添加0?
但是,这里的最大问题是您正在做%1 ,这将使其余的除以1。当然,这始终会导致0。
,您的主语句永远不会退出 - 您永远不会修改 Nowinner
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 创建以不良输出结束
- 反馈 不良输出
- CUDA C:内核输出不良结果