Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nabore en 8 Mayo 2016, 05:40 am



Título: Explicación de un codigo
Publicado por: Nabore en 8 Mayo 2016, 05:40 am
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();
}


Título: Re: Explicación de un codigo
Publicado por: crack81 en 8 Mayo 2016, 06:32 am
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:


Título: Re: Explicación de un codigo
Publicado por: Nabore en 8 Mayo 2016, 06:38 am
Wow gracias amigos me has sacado de una duda, te agradezco mucho por responder :)

Y saludos  ;-) ;-) ::)