Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dailia__ en 23 Octubre 2017, 01:21 am



Título: Error al ejecutar
Publicado por: dailia__ en 23 Octubre 2017, 01:21 am
Hola, hace poco que he empezado a programar en C y uso devc++ pero con algunos programas cuando los ejecuto funciona un momento, es decir escribo el primer dato, y luego deja de hacerlo y me dice que el programa ha fallado y que buscará una solución al problema y que lo cierre, pero bueno, esa solución no creo que llegue nunca.
A lo mejor se debe a que pongo el código mal pero entonces me daría errores al compilar o no?
Querría poder ejecutar para saber si lo que he pensado está bien o no
Dejo algunos códigos que me dan ese error,aunque ya digo, hay algunos con los que no pasa y no lo entiendo



Código
  1. #include <stdio.h>
  2. int main (void) {
  3. int n, i;
  4. printf ("introdueix un nombre");
  5. scanf ("%d",n);
  6. i=1;
  7. while (n/10>0) {
  8. n=n/10;
  9. i++;
  10. }
  11. printf ("el nombre te %d xifres",i);
  12. return 0;
  13. }
  14.  
  15.  
  16. #include <stdio.h>
  17. int main (void){
  18. int x;
  19. printf ("introdueix un nombre ");
  20. scanf ("%d",x);
  21. if (x<=9 && x>=-9)
  22. printf ("el nombre %d te un digit",x);
  23. else
  24. printf ("el nombre %d no te un digit", x);
  25. return 0;
  26. }
  27.  
  28. #include <stdio.h>
  29. int main (void) {
  30. int a;
  31. printf ("introdueix any");
  32. scanf ("%d",a);
  33. if (a%4==0)
  34. printf ("%d es any de traspas",a);
  35. else
  36. printf ("%a no es de traspas");
  37. return 0;
  38. }

Ah bueno, los comentarios y esas cosas son en catalán, creo que no habrá ningún problema con eso.
Si pudiérais ayudarme de verdad lo agradecería
Un saludo


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Error al ejecutar
Publicado por: engel lex en 23 Octubre 2017, 01:31 am
Citar
pero bueno, esa solución no creo que llegue nunca.

El que va a dar solución a eso eres tu XD si estuvieras incrito en los respectivos programas te llegaría un correo reportando tu mismo bug XD

Citar
A lo mejor se debe a que pongo el código mal pero entonces me daría errores al compilar o no?

no, hay errores de compilación y de tiempo de ejecución por ejemplo una división entre 0 desde un scanf es de tiempo de ejecución, el compilador no puede predecir si el usuario introducirá 0 en el futuro


el primero error está aquí
Código
  1. scanf ("%d",n);

scanf intenta colocar un entero en el punto de memoria que pasaste... pero como lo que pasas no es una referencia, sino un valor, el intenta escibir ese lugar de la ram y falla, causando un "segment default"

eso debe ser

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

y ese & va antes de todas las variables que pases al scanf (a menos que sean punteros o arreglos)


Título: Re: Error al ejecutar
Publicado por: dailia__ en 23 Octubre 2017, 11:58 am
vaya, tan simple.... lo siento y muchas gracias, ahora entiendo porque algunos me salen bien