Código
#include <stdio.h> #define CTE 16 #define ERROR #define NOERROR int main () { char car1 = '0'; char car2 = '0'; int valor1 = 0; int valor2 = 0; int valor = 0; int cuno; int cdos; if ( ( ('0' <= car1) && (car1 <= '9') ) || ( ('A' <= car1) && (car1 <= 'F') ) || ( ('a' <= car1) && (car1 <= 'f') ) || ( ('0' <= car2) && (car2 <= '9') ) || ( ('A' <= car2) && (car2 <= 'F') ) || ( ('a' <= car2) && (car2 <= 'f') ) ) { if ( ('0' <= car1) && (car1 <= '9') ) valor1 = car1 - '0'; else if ( ('A' <= car1) && (car1 <= 'F') ) valor1 = car1 - 'A' + 10; else valor1 = car1 - 'a' + 10; if ( ('0' <= car2) && (car2 <= '9') ) valor2 = car2 - '0'; else if ( ('A' <= car2) && (car2 <= 'F') ) valor2 = car2 - 'A' + 10; else valor2 = car2 - 'a' + 10; valor = CTE * valor1 + valor2; } else if ( ( ('0' > car1) && (car1 > '9') ) || ( ('A' > car1) && (car1 > 'F') ) || ( ('a' > car1) && (car1 > 'f') ) ) { } else if ( ( ('0' > car2) && (car2 > '9') ) || ( ('A' > car2) && (car2 > 'F') ) || ( ('a' > car2) && (car2 > 'f') ) ) { } return 0; }
se supone que tiene que decir error en el primer valor introducido si esta mal el primero o error en el segundo si es el segundo, la idea del programa es convertir un número hexadecimal en decimal.
el problema es que cuando escrimo 1g me dice que es 32 y no me dice error en el segundo valor introducido