-0 si se ha introducido el código qq de salida
-1 si se han introducido dos carácteres hexadecimales correctos.
En este último caso, también devolverá los dos caracteres hexadecimales convertidos.
Una aclaración, si introducimos un caracter que no sea hexadecimal, por ejemplo el mm, el programa nos debe pedir de nuevo que introduzcamos dos nuevos carácteres hexadecimales, así hasta que metamos uno correcto.
El programa lo que hace es una conversión de hexadecimal a decimal.
El programa que hay que modificar es el siguiente:
Código
#include <stdio.h> int hexadecimal (char car1, char car2); //Declaramos la funcion hexadecimal int main () { //Declaramos las variables char car1; char car2; int valor; //Iniciamos el bucle while while (1){ if (car1 == 'q' && car2 == 'q'){ break; }if ((valor = hexadecimal (car1, car2))) //Llamamos a la funcion hexadecimal } return 0; } int hexadecimal(char car1, char car2) //Funcion hexadecimal { char valor1; char valor2; if ('0' <= car1 && car1 <= '9') valor1 = car1 - '0'; else if ('A' <= car1 && car1 <= 'F') valor1 = car1 - 'A' + 10; else if ('a' <= car1 && car1 <= 'f') valor1 = car1 - 'a' + 10; else return -1; if ('0' <= car2 && car2 <= '9') valor2 = car2 - '0'; else if ('A' <= car2 && car2 <= 'F') valor2 = car2 - 'A' + 10; else if ('a' <= car2 && car2 <= 'f') valor2 = car2 - 'a' + 10; else return -1; return valor1 * 16 + valor2; }
Y lo he modificado de tal forma:
Código
#include <stdio.h> int* hexadecimal (char car1, char car2); //Declaramos la funcion hexadecimal int main () { //Declaramos las variables char car1; char car2; int valor, valor1,valor2; int*v; //Iniciamos el bucle while while (1) { v = hexadecimal (car1, car2); //Llamamos a la funcion hexadecimal else v= hexadecimal (car1, car2); } return (0); } int* hexadecimal(char car1, char car2) //Funcion hexadecimal { char valor1; char valor2; int*p; p=NULL; else { if (car1 == 'q' && car2 == 'q') { *p=0; } return(p); else ((('0' <= car1 && car1 <= '9')||('A' <= car1 && car1 <= 'F')||('a' <= car1 && car1 <= 'f'))&&(('0' <= car2 && car2 <= '9')||('A' <= car2 && car2 <= 'F')||('a' <= car2 && car2 <= 'f'))) { { valor=valor1 * 16 + valor2; return(valor); } } }
Me da errores y no hace lo que busco, ¿alguna ayuda?
Saludos!