Son 360 posibilidades. Mejor haz una funcion que lo verifique.
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:
Código
// 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:
Código
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:
Código
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