0

表示される一意の数字の数を追跡するサイコロを投げる人を作ろうとしています。たとえば(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;


}
4

2 に答える 2

2

for(int i = 0; i < 6; i++)それ以外のfor(int i = 0; i > 6; i++)

現在、あなたのループは決して実行されません。これ6は、以下ではなく0for()条件が失敗したためです。これが、すべて 0 を取得する理由です。

for(initializer; if-this-condition-is-true-then-execute-for-loop-else-dont ; increment)<- for ループの一般的な考え方!

于 2013-02-28T01:09:13.310 に答える
1

あなたのforループの状態は逆なので、あなたのループは実行されません:

for (int i = 0; i > 6; i++)
                  ^
于 2013-02-28T01:08:44.557 に答える