El problemas está en como obtienes un número par o impar. Si el residuo de la división entre un número y 2 sale 0 es que es par, caso contrario es impar, para esto se usa el operador módulo (
%):
numero1 % 2 == 0; // True si es par, False si es impar
También debes usar
strcmp o similar para comparar texto, le he puesto un
! delante porque
strcmp devuelve
0 si la comparación es Igual, como 0 es considerado False, le pongo el Operador de Negación para pasarlo a Verdadero:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int numero1, numero2;
char eleccion[30];
printf("Introduzca el primer digito:\n");
printf("Introduzca el segundo digito:\n");
printf("Introduzca elija el formato a presentar\n"); printf("Par [p] || impar [i]\n");
if ( !strcmp(eleccion
, "p") && (numero1
% 2 == 0) ) { printf("Par: [ %i ]", numero1
); }
if ( !strcmp(eleccion
, "p") && (numero2
% 2 == 0) ) { printf("Par: [ %i ]", numero2
); }
if ( !strcmp(eleccion
, "i") && (numero1
% 2 != 0) ) { printf("impar: [ %i ]", numero1
); }
if ( !strcmp(eleccion
, "i") && (numero2
% 2 != 0) ) { printf("impar: [ %i ]",numero2
); }
getchar(); // Para pausar la pantalla al final return 0;
}
De momento queda así, sin tanto cambio para que lo entiendas, pero siempre se puede optimizar el código ...