Programa en C (Pares e Impares)

Iniciado por sora_ori, 15 Abril 2013, 10:25 AM

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

sora_ori

Muy bueas, estoy haciendo un programa en C con estás características. Échenle un vistazo los más entendidos en C para ver que se puede corregir.



• pida dos números por teclado
• Si los dos son pares, escribirá la suma
• Si los dos son impares, y diferentes, escribirá el resto del primero respecto al segundo
• Si alguno de ellos es mayor de 10, escribirá el valor del mayor
• Si ambos son mayores de 20 escribirá el valor del menor

NOTA: Los supuestos anteriores son independientes unos de otros

• Punto extra: Escribirá un mensaje por pantalla si los números elegidos no cumplen ninguno de los supuestos indicados.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    int num1;
    int num2;
    int suma;
    int resta;
   
    printf("Escribe un numero: ");
    scanf("%d",&num1);
    printf("Escribe otro numero: ");
    scanf("%d",&num2);
   
    if ((num1 % 2 == 0) & (num2 % 2 == 0)){
              printf("\nEl numero es par");
              suma = num1 + num2;
              printf("\nLa suma de los dos numeros pares es: %d",suma);
    }

    else{
         printf ("\nNo es par");
         resta = num1 - num2;
         printf("\nLa resta de los dos numeros impares es: %d",resta);
    }
   
   
   
   
   /* MAYOR DE 20 */
      if ((num1 > 20) & (num2 > 20)){
             printf("\nLos dos numeros son mas grande de 20");
             
             if (num1 < num2)
                printf("\nEl numero mas pequeño es: %d",num1);
             else printf("\nEl numero mas pequeño es: %d",num2);
   }
   
   
   
   
    /* MAYOR DE 10 */
   if ((num1 > 10) | (num2 > 10)){
             printf("\nAlguno de los nombres es mayor a 10");
             if (num1 > num2)
                      printf("\nEl numero mas grande es: %d",num1);
                      else printf("\nEl numero mas grande es: %d",num2);
             
   }
   
   
   
    printf("\n\n");
  system("pause");
  return 0;
}

leosansan

Cita de: sora_ori en 15 Abril 2013, 10:25 AM
Muy bueas, estoy haciendo un programa en C con estás características. Échenle un vistazo los más entendidos en C para ver que se puede corregir.



• pida dos números por teclado
• Si los dos son pares, escribirá la suma
Si los dos son impares, y diferentes, escribirá el resto del primero respecto al segundo
• Si alguno de ellos es mayor de 10, escribirá el valor del mayor
• Si ambos son mayores de 20 escribirá el valor del menor

...............................................
   
    if ((num1 % 2 == 0) & (num2 % 2 == 0)){
              printf("\nEl numero es par");
              suma = num1 + num2;
              printf("\nLa suma de los dos numeros pares es: %d",suma);
    }

    else{ /*<=====AQUI ESTA EL ERROR*/
         printf ("\nNo es par");
         resta = num1 - num2;
         printf("\nLa resta de los dos numeros impares es: %d",resta);
    }
   
   ...................................
   

El error lo cometes al considerar que si no son pares "los dos" son impares los dos, cuando podría ser uno impar y el otro par.

Es decir, ese "else" tienes que cambiarlo por un if que indique que ambos son impares.

Saluditos!. ....