Так что я пытаюсь создать случайный массив из 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