Error al ejecutar

Iniciado por dailia__, 23 Octubre 2017, 01:21 AM

0 Miembros y 1 Visitante están viendo este tema.

dailia__

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



#include <stdio.h>
int main (void) {
int n, i;
printf ("introdueix un nombre");
scanf ("%d",n);
i=1;
while (n/10>0) {
n=n/10;
i++;
}
printf ("el nombre te %d xifres",i);
return 0;
}


#include <stdio.h>
int main (void){
int x;
printf ("introdueix un nombre ");
scanf ("%d",x);
if (x<=9 && x>=-9)
printf ("el nombre %d te un digit",x);
else
printf ("el nombre %d no te un digit", x);
return 0;
}

#include <stdio.h>
int main (void) {
int a;
printf ("introdueix any");
scanf ("%d",a);
if (a%4==0)
printf ("%d es any de traspas",a);
else
printf ("%a no es de traspas");
return 0;
}


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
-Engel Lex

engel lex

Citarpero 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

CitarA 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í
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

scanf ("%d",&n);

y ese & va antes de todas las variables que pases al scanf (a menos que sean punteros o arreglos)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

dailia__

vaya, tan simple.... lo siento y muchas gracias, ahora entiendo porque algunos me salen bien