//La primitiva consiste en un sorteo del que se extraen 7 bolas de 49. 6 numeros ganadores mas uno complementario. //Finalmente se extrae otro número para el reintegro, del 0 al 9, de otro bombo.
//Incluimos las librerias. #include <stdio.h> #include <stdlib.h> #include <time.h>
int main(int argc, char* argv[]) { //Establecemos las variables. Inicializamos todas las bolas con valor 0. int extraccion, bola_actual, reintegro, impresion, comparacion; int bolas[7]={0};
//Iniciamos el generador de números aleatorios, srand(time(NULL));
//Imprimimos la cabecera. printf("\n Loterias DaxHordes.org!\n La combinación ganadora de hoy es:\n ");
//Sacamos las 7 bolass. for (extraccion = 0; extraccion < 7; extraccion++) { bola_actual = (rand() % 49) + 1; //Si la bola extraída coincide con alguna anterior se vuelve a extraer. for(comparacion = 0; comparacion <= 6; comparacion++) { if (bola_actual == bolas[comparacion]) { comparacion = 0; bola_actual = (rand() % 49) + 1; } } bolas[extraccion] = bola_actual; } //Sacamos también el reintegro. reintegro = rand() % 10;
//Imprimimos los resultados de las 6 bolass... for (impresion = 0 ; impresion < 6 ; impresion++) { printf("%d, ", bolas[impresion]); }
// el complementario... printf("\n Complementario: %d", bolas[6]);
// y el reintegro. printf("\n Reintegro : %d\n\n", reintegro);
//La primitiva consiste en un sorteo del que se extraen 7 bolas de 49. 6 numeros ganadores mas uno complementario. //Finalmente se extrae otro número para el reintegro, del 0 al 9, de otro bombo.
//Incluimos las librerias. #include <stdio.h> #include <stdlib.h> #include <time.h>
int main(int argc, char* argv[]) { //Establecemos las variables. Inicializamos todas las bolas con valor 0. int e, bola_actual, reintegro, i; int bolas[7]={0};
//Iniciamos el generador de números aleatorios, srand(time(NULL));
//Imprimimos la cabecera. printf("\n Loterias DaxHordes.org!\n La combinación ganadora de hoy es:\n ");
//Sacamos las 7 bolass. for (e = 0; e < 7; e++) { bola_actual = (rand() % 49) + 1; //Si la bola extraída coincide con alguna anterior se vuelve a extraer. int c = 0; while ( c <= 6 ) { if (bola_actual == bolas[c]) { c = 0; bola_actual = (rand() % 49) + 1; } else { c++; } } bolas[e] = bola_actual; } //Sacamos también el reintegro. reintegro = rand() % 10;
//Imprimimos los resultados de las 6 bolass... for (i = 0 ; i < 6 ; i++) { printf("%d, ", bolas[i]); }
// el complementario... printf("\n Complementario: %d", bolas[6]);
// y el reintegro. printf("\n Reintegro : %d\n\n", reintegro);
Dark Pallacus escribió:Entonces las variables que solo usamos para contador en un while o for, no necesitan un nombre descriptivo.
Por cuestiones históricas (derivadas de Fortran) siempre se ha usado i, j, k, l... o c (de counter, contador).
Dark Pallacus escribió:Se pueden declarar justo antes del for o hay que declararlas al principio?
En realidad no importa mucho, puedes hacer como más te guste. Aunque por legibilidad, lo correcto sería declararlas lo más cerca posible de donde las vayas a usar (cuestiones de implementación interna de C). Lo que no se ve con buenos ojos es hacerlo dentro del for (que se puede).
Ejercicios de la lección terminados. Como creo que no puedo ser muy útil con lo del proyecto del emulador mejor sigo con los ejercicios del curso, porque la verdad no entiendo casi nada , aun así voy a seguir tratando de entenderle aunque sea poco.
int main(int argc, char* argv[]) { int dado_maquina, dado_humano;
printf("Vamos a jugar a los dados... ¿Te atreves a jugar contra mí?\n"); printf("Tú tiras primero. Presiona una tecla para tirar el dado.\n"); getchar();
if (dado_maquina > dado_humano) printf("Eres un mortal sin mucha suerte\n"); else if (dado_maquina == dado_humano) printf("Vaya coincidencia...\n"); else printf("Eres un mortal con bastante suerte... En la próxima versión no será tan fácil.\n");