Explicación de un codigo

Iniciado por Nabore, 8 Mayo 2016, 05:40 AM

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

Nabore

Buenas noches chic@s el problema es que estaba haciendo un ejercicio simple en lenguaje C, que era saber si un número es par o impar, me quedo bien si , pero al codigo o al proceso no le  encuentro la logica que puse, entonces me gustaria saber si ustedes me podrian ayudar, ya que tienen mas experiencia que yo, Gracias

Codigo=  


#include <stdio.h>
#include <windows.h>
#include <conio.h>
main (){
int n;
printf("Digite el número: ");
scanf("%d",&n);
if (n/2*2 == n ) {printf("Par");} else {printf("Impar");}
getch();
}

crack81

Lo que hace tu codigo primero es dividir el numero luego lo multiplica por dos  y despues compararlo con el numero original

Ejemplo
si ingresas un 5
el if quedaria asi ===> 5/2*2==5
que si resolvemos las operaciones realmente quedaria esto

5/2==> 2, en efecto daria dos y no 2.5 ya que en programacion cuando divides un variable de tipo int entre otro entero siempre dara un entero, para que quedara con decimales tendrias que cambiar el tipo de dato de int a float o especificar el numero como float ejemplo: 2.0
osea especificando la parte decimal

Despues haria esta operacion
2*2==>4
ya teniendo ese numero lo comparia con el 5 original si es igual da true en este caso dara un false por ende es impar

Otro ejemplo seria usando el numero 8
8/2 ==>4
4*2==> 8

8==8
Al comparar el resultado seria true por ende par

El algortimo funciona pero la forma clasica es hacerto

if(numero%2==0)
    esPar
else
  noesPar

Lo que hace es dividir el numero entre dos y si su residuo es cero entonces es par en caso contrario es impar.

si tienes dudas avisa
Saludos... :silbar:
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

Nabore

Wow gracias amigos me has sacado de una duda, te agradezco mucho por responder :)

Y saludos  ;-) ;-) ::)