Zadanie: Vstupom je pole znakov. Výstupom je číslo -1, ak obsahuje iné znaky ako hexadecimálne číslice. Inak je výstupom číslo (int), ktoré je zapísané v danom reťazci v 16-kovej sústave od najvyššej číslice. Príklad: f("1A") vráti 26
Takže zatial mám
int hexadecimalne_cislo(char pole[], int dlzka)
{
int i, j;
int pom;
int dlzka_sustavy;
char sustava[] = "0123456789ABCDEF"; //znaky hexadecimalnej sustavy
dlzka_sustavy = strlen(sustava);
for(i = 0; i < dlzka; i++) //cyklus na zistenie, ci su znaky hexadecimalne
{
if(islower(pole[i])) //zmeni male pismena na velke
pole[i] = toupper(pole[i]);
for(j = i; j < dlzka_sustavy; j++)
{
if(pole[i] != pole[j]) //ked sa nejaky znak nezhoduje so znakom sustavy vrati -1 a vyskoci z funkcie
{
return -1;
exit(0);
}
}
}
for(i = dlzka - 1; i > 0; i--) //cyklus na prevedenie do dekadickej sustavy (desiatkovej)
{
}
}
Problém je pri prevádzaný. Nieviem ako spraviť, že keď mi narad príde nejaké písmeno, aby počítalo s hodnotou, akú mu priradím. Respektíve, ako priradiť k tomu písmenu hodnotu. Kedže do poľa som už priradil písmeno, tak už hodnotu k tomu priradiť nemôžem. Má sa to robiť bez štruktúr.