独特的骰子计数器不能正常工作(初学者)

Unique dice counter not working properly (beginner)

本文关键字:常工作 工作 初学者 不能 计数器      更新时间:2023-10-16

我想做一个骰子投掷器,它跟踪有多少唯一的数字出现。例如(1 2 3 3 1 5 = 4个唯一的数字,1 1 1 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;

}

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) <-考虑for循环的一般方式!

你的for循环的条件是反向的,所以你的循环永远不会运行:

for (int i = 0; i > 6; i++)
                  ^