Autor
|
Tema: Problema en C. ¿Os pasa lo mismo? (Leído 2,385 veces)
|
Sobrelouis123
Desconectado
Mensajes: 6
|
¡Hola! Hoy he estado haciendo un ejercicio en C, que consistía en crear un juego en consola en el que se crea una variable random y el usuario tiene que adivinarla. Code::Blocks no me da ningún error, pero cuando doy un numero me da un error (el típico error de que el programa no responde). Estos son los detalles del error: Firma con problemas: Nombre del evento de problema: APPCRASH Nombre de la aplicación: tp1.exe Versión de la aplicación: 0.0.0.0 Marca de tiempo de la aplicación: 51bb6c81 Nombre del módulo con errores: msvcrt.dll Versión del módulo con errores: 7.0.7601.17744 Marca de tiempo del módulo con errores: 4eeaf722 Código de excepción: c0000005 Desplazamiento de excepción: 0001ecc0 Versión del sistema operativo: 6.1.7601.2.1.0.768.3 Id. de configuración regional: 3082 Información adicional 1: 0a9e Información adicional 2: 0a9e372d3b4ad19135b953a78882e789 Información adicional 3: 0a9e Información adicional 4: 0a9e372d3b4ad19135b953a78882e789 Y este es el código: #include <stdio.h> #include <stdlib.h> #include <time.h>
int main() { const int MAX = 100, MIN = 1; int numero = 0; int nombreMystere = 0; srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; printf("Quel est le nombre? "); scanf("%d", numero); while (numero > nombreMystere) { printf("Menos! Intenta otra vez"); scanf("%d", numero); } while (numero < nombreMystere) { printf("Mas! Intenta otra vez"); scanf("%d", numero); } while (numero == nombreMystere) { printf("Has ganado!"); } }
|
|
|
En línea
|
14 años. Python: 70% javascript: 50% C: 25% HTML & CSS: 100% Observando se aprende.
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Fíjate en esta línea:
En la función scanf, el especificador "%d" espera que se le pase la dirección de un int, no un int. Prueba a sustituirla por esto:
Así le pasas la dirección de la variable, y no la variable misma, que en este caso está inicializada a 0, por lo que te puedes imaginar que scanf está intentando escribir en la dirección 0 en memoria. Saludos.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
Sobrelouis123
Desconectado
Mensajes: 6
|
Ya los he corregido todos, pero ahora cuando escribo un numero mayor a 9 se acaba el código.
|
|
|
En línea
|
14 años. Python: 70% javascript: 50% C: 25% HTML & CSS: 100% Observando se aprende.
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Ya los he corregido todos, pero ahora cuando escribo un numero mayor a 9 se acaba el código.
A qué te refieres exactamente con eso? Es decir, qué es exactamente lo que pasa?
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
Sobrelouis123
Desconectado
Mensajes: 6
|
Esto es lo que sale: Quel est le nombre? 8 Mas! Intenta otra vez: 80 Process returned 80(0x50)
|
|
|
En línea
|
14 años. Python: 70% javascript: 50% C: 25% HTML & CSS: 100% Observando se aprende.
|
|
|
xiruko
Desconectado
Mensajes: 438
|
Tienes un problema con el algoritmo, debería ser algo así: do { if (numero > nombreMystere) { printf("Menos! Intenta otra vez\n"); } else if (numero < nombreMystere) { printf("Mas! Intenta otra vez\n"); } } while (numero != nombreMystere);
Saludos!
|
|
|
En línea
|
|
|
|
Sobrelouis123
Desconectado
Mensajes: 6
|
¡Gracias! Ahora a mirar un poco el algoritmo
|
|
|
En línea
|
14 años. Python: 70% javascript: 50% C: 25% HTML & CSS: 100% Observando se aprende.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Además de lo comentado por , tienes de sobra el bucle para cuando son igualea, porque te hace entrar en en bucle sin salida. [quote author=Sobrelouis123 link=topic=392565.msg1861407#msg1861407 date=1371238348] ......................................................................... while (numero == nombreMystere) { printf("Has ganado!"); } }
Funcionado, sin apenas modificar tu código original sería:#include <stdlib.h> #include <time.h> int main() { const int MAX = 100, MIN = 1; int numero = 0; int nombreMystere = 0; srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; puts("Quel est le nombre? "); scanf("%d", &numero); while (numero > nombreMystere) { puts("Menos! Intenta otra vez"); scanf("%d", &numero); } while (numero < nombreMystere) { puts("Mas! Intenta otra vez"); scanf("%d", &numero); } puts("Has ganado!"); return 0; }
Saluditos!.
|
|
« Última modificación: 16 Junio 2013, 19:22 pm por leosansan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como instalar 2 quemadores para que quemen lo mismo y al mismo tiempo
Software
|
vale
|
2
|
6,684
|
7 Octubre 2005, 00:07 am
por Mordor
|
|
|
ejecutar el mismo programa varia veces al mismo tiempo
Dudas Generales
|
narizota
|
3
|
9,409
|
8 Enero 2011, 17:25 pm
por simorg
|
|
|
¿Cómo utilizar dos Rocket Docks al mismo tiempo en un mismo PC? (SOLUCIONADO)
Software
|
vincent13m
|
5
|
7,962
|
14 Agosto 2011, 02:04 am
por vincent13m
|
|
|
Problema el mismo se delata
« 1 2 »
Dudas Generales
|
ANTRUCK
|
13
|
6,760
|
12 Julio 2011, 10:42 am
por skapunky
|
|
|
Cómo mismo es eso del problema del año 2038 o Y2K38?
Foro Libre
|
Br1ant
|
3
|
2,169
|
2 Marzo 2014, 14:29 pm
por daryo
|
|