Excluir números del rand()%10

Disculpa, no hay texto en esta pregunta, edítala de nuevo.

1 respuesta

Respuesta
1
Puedes hacerlo así:
int numero=6;
while (numero==6) numero=rand()%10;
Estoy haciendo un programa en ansi c y me gustaría saber como puedo hacer para excluir números a la hora de generar un aleatorio, es decir, que me excluya por el ejemplo el 6 si quiero que genere números aleatorios ente 1 y 9 pero que nunca salga el 6.
Mi idea es hacer un sudoku, que nos lo han pedido en clase y lo que estoy haciendo para comprobar que no se peitan dentro de una fila los mismos números es usar varios for anidados, ¿utilizando algo así me servirá?
int i,j,k;
int sudoku[9][9];
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
for(k=j+1;k<9;k++)
{
if(sudoku[j]==sudoku[k]
{
sudoku[j]=rand()%10;
}
}
}
}
El problema es que se me siguen repitiendo números.
Muchas gracias
Si he entendido bien, entonces dentro del if(sudoku[j]==sudoku[k])
debe ir
while (sudoku[j]==sudoku[k])
sudoku[j]=rand()%10;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas