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 ...