[ Foro de C ]
Intento hacer el ejercicio del apartado 2 , pero el programa me dá un error después de introducir la primera variable:
#include<stdio.h>
main()
{
long int num1, num2, resultado;
resultado = num1 * num2;
scanf("%d", num1);
scanf("%d", num2);
printf("%d", resultado);
getchar();
}
que puede ser?
gracias
Holap:
El error consiste en que asignas el valor a la variable "resultado" ANTES de que num1 y num2 hayan guardado el valor ingresado por el usuario:
Para corregirlo sólo basta cambiar de lugar la línea donde "resultado" guarda num1*num2, así:
#include<stdio.h>
main()
{
long int num1, num2, resultado;
scanf("%d", num1);
scanf("%d", num2);
resultado = num1 * num2;
printf("%d", resultado);
getchar();
}
Ahora sí debería funcionar...
Saludooos :P
Sigue sin funcionar. Despues de introducir la primera variable vuelve a poner error. Esta es una captura de mi pantalla:
http://img163.imageshack.us/img163/2136/screenshot1710201022454.png
saludos
Olvidé un pequeño detalle:
Debes agregar el símbolo "&" a las variables en la función "scanf();"... así:
#include<stdio.h>
main()
{
long int num1, num2, resultado;
scanf("%d", &num1);
scanf("%d", &num2);
resultado = num1 * num2;
printf("%d", resultado);
getchar();
}
Ahora sí que sí... xD
Saludooos :P
Ahora si que funciona. Gracias :)
saludos
Un pequeño detalle: "%d" se usa para números "int" (enteros normales), no para "long int".
Si quieres que tu fuente trabaje con "long int" (enteros de mayor tamaño), deberías usar "%ld", tanto en "scanf" como en "printf", o puedes tener problemas cuando introduzcas datos grandes (mayores que un entero normal, por ejemplo un número de 11 cifras).
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)