|
3562
|
Programación / Programación C/C++ / Re:
|
en: 22 Enero 2014, 16:34 pm
|
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
También puedes hacer una función más genérica, pasándole un array con las cifras permitidas, y un int con el número de cifras del número que quieres generar.
|
|
|
3564
|
Programación / Programación C/C++ / Re:
|
en: 22 Enero 2014, 09:10 am
|
Son 360 posibilidades. Mejor haz una funcion que lo verifique.
Enviado desde mi ST21i mediante Tapatalk
|
|
|
3565
|
Programación / Programación C/C++ / Re: Problema con srand() y rand()
|
en: 21 Enero 2014, 17:46 pm
|
Recuerda que Srand no genera número aleatorio. Pone la semilla para Rand. Si te quieres asegurar, deberás hacerlo a mano, con una función, por ejemplo. de longitud 4 e intervalo [0,5] Longitud 4 e intervalo 0,5 el qué?
|
|
|
3566
|
Programación / Programación C/C++ / Re: Duda 'tipo enumerado'
|
en: 21 Enero 2014, 00:09 am
|
Vamos a ver. No soy yo experto en enums, pero sé que el uso normal que se le da a enums, es para entender las cosas. Por ejemplo: en una clase, pongo que si recibe clase(0), haga un cout q ponga "HOLA". Si recibe un 1, hace que diga "QUE TAL", y si recibe un 3, dice "ADIOS". Los números no son tan intuitivos, como poner: enum salidas{ hola, qtal, adios};
Así, pondría: clase(salidas.hola); y sería como enviarle un 0. (No se si los codes los escribí muy bien, pero el concepto era ese xd) Si quieres guardar valores tipo int, puedes usar arrays, vectores, listas, etc etc
|
|
|
3567
|
Programación / Programación C/C++ / Re: Duda 'tipo enumerado'
|
en: 20 Enero 2014, 23:57 pm
|
Un ENUM asigna a cada palabra que tiene dentro, un número. Por defecto, las ordena del 0 al N. Puedes cambiar eso, poniendo: rojo = 5, azul = ... . Creo que además, puedes "incitarle" un orden poniendo rojo=10, azul=20, ... No se muy bien esto último, pero puedes probar. Pero lo dicho, en un enum, lo transforma a enteros.
|
|
|
3568
|
Foros Generales / Dudas Generales / Re:
|
en: 19 Enero 2014, 23:53 pm
|
Tú no tienes acceso a la IP desde la cual se envió un mail.
Enviado desde mi ST21i mediante Tapatalk
|
|
|
3570
|
Programación / Scripting / Re: Variables en BATCH
|
en: 19 Enero 2014, 14:39 pm
|
Bueno, no soy yo expero en vbs, pero: Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "darta.bat" & Chr(34), 0 Set WshShell = Nothing
Eso inicia "darta.bat", sin consola (creo). Así que te basta con inicias el vbs, y él ya inicia el bat.
|
|
|
|
|
|
|