Tal como está, yo quitaría los 2 for, y lo dejaría:
Código (cpp) [Seleccionar]
if (mat[i][j] != 1){
mat[i][j] = 1;
}
else printf("Asiento ocupado");
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
if (mat[i][j] != 1){
mat[i][j] = 1;
}
else printf("Asiento ocupado");
union{
int a;
uint32_t b;
}n;
n.a = 666;
cout << n.b;
Cita de: amchacon en 22 Enero 2014, 11:46 AM
Con 4 cifras son 24 posibilidades (4 x 3 x 2 x 1).
En cuanto al tema en cuestión te dejo otra propuesta más generica:// Prototipos...
bool comprobarCoincidencias(int a,int array[],unsigned int tam);
void generarNumeros(int Vector[],unsigned int tam, int max = RAND_MAX,int min = 0);
// Otro codigo...
// Declaracion de las funciones
void generarNumeros(int Vector[],unsigned int tam, int max,int min)
{
// Se presupone que Vector tendrá al menos el tamaño de tam.
if (tam == 0) return;
Vector[0] = rand();
for (unsigned int i = 1; i < tam;i++)
{
do
{
Vector[i] = (rand()%max)+min;
} while (comprobarCoincidencias(Vector[i],Vector,i));
}
}
bool comprobarCoincidencias(int a,int array[],unsigned int tam)
{
for (unsigned int j = 0; j < tam;j++)
{
if (array[j] == a) return true;
}
return false;
}
No lo he probado pero debería funcionar. Tienes que pasarle el vector que quieres que te rellene, el numero de cifras y el máximo/menor (no inclusivo) valor que puede coger cada cifra. En este caso el maximo sería 10 porque quieres números del 0-9 supongo.
Por cierto:void generarNumeros(int Vector[],unsigned int tam, int max = RAND_MAX,int min = 0);
Los "=" son son argumentos por defecto. Si no le dices nada el compilador te los rellena automaticamente:generarNumeros(vector,tam); // max = RAND_MAX y min = 0
generarNumeros(vector,tam,10); // max = 10 y min = 0
generarNumeros(vector,tam,10,1); // max = 10 y min = 1
Citarde longitud 4 e intervalo [0,5]
enum salidas{ hola, qtal, adios};