所以我想要做的是創建一個5元素的隨機數組,那些元素應該填充1到6的數字,他們不應該重複,我不能告訴我的邏輯在哪裏是錯的。沒有重複數字的隨機數組
void genNumber(int vet[]){
int max, i, j, atual;
srand(time(NULL));
max = 7;
for (i=0;i<5;i++){
vet[i] = rand() % max;
while(vet[i] == 0){
vet[i] = rand() % max;
}
for(j=0;j<i;j++){
atual = vet[j];
while((vet[i] == atual)||(vet[i] == 0)){
vet[i] = rand() % max;
atual = vet[j];
}
}
}
}
更新:修正
void genNumber(int vet[]){
int max, i, j;
srand(time(NULL));
max = 7;
for (i=0;i<5;i++){
vet[i] = rand() % (max-1) + 1;
for(j=0;j<i;j++){
while(vet[j] == vet[i]){
vet[i] = rand() % (max-1) + 1;
j = 0;
}
}
}
}
什麼是錯誤信息? – Downvoter
@cad:如果他們不確定他們的邏輯*錯在哪裏,那麼它可能編譯沒有錯誤,但不能按預期工作。 – Joey
第二個'atual = vet [j];'似乎是多餘的/錯誤的。 – JimmyB