Witam. Piszę pewien program w języku c, który ma stwierdzać czy tekst jest liczbą i zamieniać go na system dziesiętny, jeśli jest w innym systemie. Mam kłopot z wywołaniem funkcji, która konwertuje na system dziesiętny. Nie wiem, gdzie popełniłem błędy, bo wszystko się kompiluje. Jeśli ktoś mógłby pomóc, byłbym bardzo wdzięczny. Oto fragment kodu:
struct Liczba {
char tekst[100];
char bity;
};
int DwojDzies(char *wskT,int d)
{
int wartosc=0,i;
for(i=2; i<d; i++)
{
wartosc=wartosc*2+wskT[i];
}
return wartosc;
printf("%d",wartosc);
}
int OsemDzies(char *wskT,int d)
{
int wartosc=0,i;
for(i=1; i<d; i++)
{
wartosc=wartosc*8+wskT[i];
}
return wartosc;
printf("%d",wartosc);
}
int SzesnDzies(char *wskT,int d)
{
int wartosc=0,i;
for(i=2; i<d; i++)
{
switch(wskT[i])
{
case 'a': wskT[i]=10; break;
case 'A': wskT[i]=10; break;
case 'b': wskT[i]=11; break;
case 'B': wskT[i]=11; break;
case 'c': wskT[i]=12; break;
case 'C': wskT[i]=12; break;
case 'd': wskT[i]=13; break;
case 'D': wskT[i]=13; break;
case 'e': wskT[i]=14; break;
case 'E': wskT[i]=14; break;
case 'f': wskT[i]=15; break;
case 'F': wskT[i]=15; break;
}
wartosc=wartosc*16+wskT[i];
}
return wartosc;
printf("%d",wartosc);
}
void ZamienNaSystemDziesietny(struct Liczba *wsk)
{
int d;
OdczytajzPlikuTekstowego(wsk);
d=strlen(wsk->tekst);
if (CzyLiczba(wsk->tekst,d)==1)
{
if (CzySzesnastkowa(wsk->tekst,d)==1)
SzesnDzies(wsk->tekst,d);
if (CzyOsemkowa(wsk->tekst,d)==1)
OsemDzies(wsk->tekst,d);
if (CzyDwojkowa(wsk->tekst,d)==1)
DwojDzies(wsk->tekst,d);
}
}
int main(int argc, char** argv)
{
struct Liczba l;
ZamienNaSystemDziesietny(&l);
return 0;
}