[ Foro de C ]
He estado practicando con if y al hacer un programa he tenido un problema:
#include<stdio.h>
int num1;
int num2;
int prod;
main()
{
printf("Introduce un numero\n");
scanf("%d \n",&num1);
if (num1==0) printf("Cualquier numero multiplicado por 0 es 0\n");
if (num1!=0) printf("Introduzca otro numero\n");
if (num1!=0) scanf("%d \n",&num2);
if (num2==0) printf("Cualquier numero multiplicado por 0 da 0\n");
if (num2!=0) printf("el resultado de %d por %d es :\n",num1,num2);
prod = num1 * num2;
if (num2!=0) printf("%d \n",prod);
getchar();
}
Lo reescribí pero sigue funcionando mal :
#include<stdio.h>
#include<windows.h>
int num1;
int num2;
int prod;
main()
{
printf("Introduzca un numero\n");
scanf("%d \n",&num1);
if (num1==0) printf("Cualquier numero multiplicado por 0 es 0\n");
if (num1!=0)
{
printf("Introduzca otro numero\n");
scanf("%d \n",&num2);
if (num2==0) printf("Cualquier numero multiplicado por 0 da 0\n");
if (num2!=0)
{
printf("el resultado de %d por %d es :\n",num1,num2);
prod = num1 * num2;
printf("%d \n",prod);
}
}
getchar();
system("PAUSE");
}
Esto es lo que pasa:
"
Introduzca un numero
num1
num2
Introduzca otro numero
num3
el resultado de num1 por num2 es :
num1 * num2
"
Por qué pasa esto?
¿Has probado a quitar los espacios y los "\n" de los "scanf", indicando que quieres leer sólo un número entero?:
scanf("%d",&num1);
en vez de
scanf("%d \n",&num1);
también podrías usar "else" en vez de repetir "if" opuestos, pero eso no debería afectar al funcionamiento, simplemente acorta el programa y lo hace un poco más rápido:
if (num1==0) printf("Cualquier numero multiplicado por 0 es 0\n");
else
{
en lugar de
if (num1==0) printf("Cualquier numero multiplicado por 0 es 0\n");
if (num1!=0)
{
Quité los espacios y ya funciona.
Gracias
(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.)