elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema en C. ¿Os pasa lo mismo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en C. ¿Os pasa lo mismo?  (Leído 2,382 veces)
Sobrelouis123

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Problema en C. ¿Os pasa lo mismo?
« en: 14 Junio 2013, 21:32 pm »

¡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:
Código:
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:
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 Desconectado

Mensajes: 1.077



Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #1 en: 14 Junio 2013, 22:08 pm »

Fíjate en esta línea:

Código
  1. scanf("%d", numero);

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:

Código
  1. scanf("%d", &numero);

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 Desconectado

Mensajes: 6


Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #2 en: 14 Junio 2013, 22:26 pm »

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 Desconectado

Mensajes: 1.077



Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #3 en: 14 Junio 2013, 22:48 pm »

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 Desconectado

Mensajes: 6


Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #4 en: 14 Junio 2013, 22:57 pm »

Esto es lo que sale:
Código:
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 Desconectado

Mensajes: 438


Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #5 en: 14 Junio 2013, 23:06 pm »

Tienes un problema con el algoritmo, debería ser algo así:

Código
  1. do
  2. {
  3.   scanf("%d", &numero);
  4.   if (numero > nombreMystere)
  5.   {
  6.         printf("Menos! Intenta otra vez\n");
  7.   }
  8.   else if (numero < nombreMystere)
  9.   {
  10.         printf("Mas! Intenta otra vez\n");
  11.   }
  12. } while (numero != nombreMystere);
  13.  
  14. printf("Has ganado!\n");

Saludos!
En línea

Sobrelouis123

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #6 en: 14 Junio 2013, 23:13 pm »

¡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 Desconectado

Mensajes: 1.314


Ver Perfil
Re: Problema en C. ¿Os pasa lo mismo?
« Respuesta #7 en: 15 Junio 2013, 00:10 am »

Código:
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:

Código
  1. #include <stdlib.h>
  2. #include <time.h>
  3.  
  4. int main()
  5. {
  6.    const int MAX = 100, MIN = 1;
  7.    int numero = 0;
  8.    int nombreMystere = 0;
  9.    srand(time(NULL));
  10.    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
  11.    puts("Quel est le nombre? ");
  12.    scanf("%d", &numero);
  13.  
  14.        while (numero > nombreMystere)
  15.        {
  16.            puts("Menos! Intenta otra vez");
  17.            scanf("%d", &numero);
  18.        }
  19.        while (numero < nombreMystere)
  20.        {
  21.            puts("Mas! Intenta otra vez");
  22.            scanf("%d", &numero);
  23.        }
  24.        puts("Has ganado!");
  25.        return 0;
  26. }
  27.  

Saluditos!.


« Última modificación: 16 Junio 2013, 19:22 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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,683 Último mensaje 7 Octubre 2005, 00:07 am
por Mordor
ejecutar el mismo programa varia veces al mismo tiempo
Dudas Generales
narizota 3 9,404 Último mensaje 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,957 Último mensaje 14 Agosto 2011, 02:04 am
por vincent13m
Problema el mismo se delata « 1 2 »
Dudas Generales
ANTRUCK 13 6,760 Último mensaje 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,168 Último mensaje 2 Marzo 2014, 14:29 pm
por daryo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines