C++ 更改数组值

C++ 更改数组值,c++,arrays,C++,Arrays,我想知道如果数组列表中的值满足程序中的条件,是否有人能引导我正确地改变它 我的意思是,如果用户不想保留骰子的值,我只想掷骰子 所以我创建了这个函数来掷骰子: int roll[numDice]; for(int i = 0; i <= numDice; i++){ roll[i] = rand()%6+1; } int roll[numDice]; 对于(int i=0;i您不应该测试数组元素的值,您应该测试索引(因为它们在多个骰子上可能有相同的掷骰)。然后只需使用if/els

我想知道如果数组列表中的值满足程序中的条件,是否有人能引导我正确地改变它

我的意思是,如果用户不想保留骰子的值,我只想掷骰子

所以我创建了这个函数来掷骰子:

int roll[numDice];

for(int i = 0; i <= numDice; i++){
    roll[i] = rand()%6+1;
}
int roll[numDice];

对于(int i=0;i您不应该测试数组元素的值,您应该测试索引(因为它们在多个骰子上可能有相同的掷骰)。然后只需使用
if/else

if (usersKeep == i) {
    cout << "We will keep this die " << i << '\n';
} else {
    cout << "Rolling die " << i << '\n';
    roll[i] = rand() % 6 + 1;
}
if(usersKeep==i){

cout如果真的是为了一个yahtzee,你有一个固定数量的骰子,如果我记得很清楚的话,你需要5个int

但是作为一种标记骰子是否被保留的方法,你可以使用一个结构

typedef struct dice {
    int value;
    int keep;
}    dice;
然后有一个骰子阵列

dice dices[5];
设置
骰子[n]。首先保持=0
然后在循环中添加一个条件

for(int i = 0; i < 5; i++) {
    if (roll[i].keep == 1) {
        roll[i].value = rand()%6+1;
    }
}

<>希望帮助。 >代码> Nodice < /Cudi>是编译时常数,代码依赖于编译器扩展。它不是纯C++。<代码> TyPufFraseDice {…}骰子; >在C++中不需要。<代码> Strut Dice {}…}
就足够了。你可以把它看作是
struct
自动
typedef
ed。无论如何,结构没有太多意义。Yatzee不关心骰子的顺序,所以跟踪哪个骰子被保留是一个不必要的复杂问题。你只需要一个
int
数组来记录保留的值还有一个
int
来记录保存了多少个骰子。哦,谢谢你,我总是用C的方式进行结构。在我看来,像我这样使用结构数组比在值之间移动更容易,或者更糟糕的是,重新分配一个int数组。但是解决每个问题有很多方法
for(int i = 0; i < 5; i++) {
    if (roll[i].keep == 1) {
        roll[i].value = rand()%6+1;
    }
}
if (...) //depends on how you want to ask the user
    dices[i].keep = 1;