我正在尝试制作一个骰子投掷器来跟踪显示多少个唯一数字。例如(1 2 3 3 1 5 = 4个唯一的数字,1 1 1 1 1 1 = 1个唯一数字,1 2 3 4 5 6 = 6个唯一数字)。但每次它只返回一个“0”的唯一数字。有人可以帮忙吗?
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int numberGenerator() //generates 1-6
{
int x = (rand() % 6) + 1;
return x;
}
int diceCounter()
{
int counter[6] = {0,0,0,0,0,0};
for (int i = 0; i > 6; i++)
{
int k = numberGenerator(); //records if the dice number has been rolled
if (k == 1)
counter[0] = 1;
if (k == 2)
counter[1] = 1;
if (k == 3)
counter[2] = 1;
if (k == 4)
counter[3] = 1;
if (k == 5)
counter[4] = 1;
if (k == 6)
counter[5] = 1;
}
return counter[0]+counter[1]+counter[2]+counter[3]+counter[4]+counter[5];
} //returns amount of unique dice numbers
int main()
{
srand(time(NULL));
cout << diceCounter() << endl;
}
答案 0 :(得分:2)
for(int i = 0; i < 6; i++)
代替for(int i = 0; i > 6; i++)
目前你的循环永远不会执行,因为6
不小于0
且for()
条件失败 - 这就是你得到全0的原因。
for(initializer; if-this-condition-is-true-then-execute-for-loop-else-dont ; increment)
&lt; - 考虑循环的一般方法!
答案 1 :(得分:1)
你的for
循环条件是向后的,所以你的循环永远不会运行:
for (int i = 0; i > 6; i++)
^