Witam
Mam problem z kodem który ma za zadanie zmiane liczb napisanych w systemie dec,bin,hex na dec,bin,hex . Jest to takie podsumowanie semestru i tego co się nauczyłem ( tak to ja traktuje). Postawiłem na funkcje,ify,switche, obsługe plików, ogólnie rzecz mówiąc na wszystko co umiem.
Mam problem z tym kodem:
#include <stdio.h>
int DEC (int zwykla,int na)
{
int spr,fu,j=0;
int wynik,i=0;
char tab[40];
switch(na)
{
case 1:
printf("Wynik to: %d ",zwykla);
break;
case 2:
while(zwykla!=0)
{
i++;
tab[i]=zwykla%2;
zwykla/=2;
}
printf("Wynik to: ");
while(i!=0)
{
printf("%d",tab[i]);
i--;
}
break;
case 3:
for(i=268435456;i!=0;i=i/16)
{
if(zwykla>=i){
fu=zwykla/i;
tab[j]=conv(fu);
zwykla%=i;
j++;
}
}
spr=j;
for(j=0;spr!=j;j++)
{
if(tab[j]<10)
printf("%d",tab[j]);
else
printf("%c",tab[j]);
}
break;
}
}
int BIN (int zwykla,int na)
{
char tab[40];
char czas;
int wynik=0,i=0,tmp,j=1,czasowo;
if(na==1){
FILE *odc,*zap;
zap=fopen("nowy.txt", "a");
fprintf(zap,"%d",zwykla);
fclose(zap);
odc=fopen("nowy.txt", "r");
while(tab[i]!=EOF)
{
czasowo=fgetc(odc);
printf("%d",czasowo-48);
tab[i]=(czasowo-48);
i++;
}
tmp=i;
for(i=tmp;i!=0;i--)
{
tab[i]=tab[i]*j;
wynik=wynik+tab[i];
j*=2;
}
printf("Wynik to : %d", wynik);
fclose(odc);
}
}
int HEX (int zwykla,int na)
{
int wynik;
}
int main()
{
int zwykla,z,na;
printf("podaj liczbe do przekonwertowania \n");
scanf("%d", &zwykla);
printf("Jaka jest to liczba? 1-DEC 2-BIN 3-HEX : ");
scanf("%d", &z);
printf("Na jaka liczbe ma byc przekonwertowana ? 1-DEC 2-BIN 3-HEX :");
scanf("%d", &na);
switch(z)
{
case 1:
DEC(zwykla,na);
break;
case 2:
BIN(zwykla,na);
break;
case 3:
HEX(zwykla,na);
break;
default:
printf("nieprawidlowa wartosc/n");
break;
}
getch();
return 0;
}
int conv (int fu )
{
switch(fu)
{
case 10:
return 'A';
break;
case 11:
return 'B';
break;
case 12:
return 'C';
break;
case 13:
return 'D';
break;
case 14:
return 'E';
break;
case 15:
return 'F';
break;
default:
return fu;
break;
}
}
a dokładnie z tym kawałkiem ( przepraszam za syf ale sa pozostałości bo wielu probach ominiecia problemów:
int BIN (int zwykla,int na)
{
tab[40]
char czas;
int wynik=0,i=0,tmp,j=1,czasowo;
if(na==1){
FILE *odc,*zap;
zap=fopen("nowy.txt", "a");
fprintf(zap,"%d",zwykla);
fclose(zap);
odc=fopen("nowy.txt", "r");
while(tab[i]!=EOF)
{
czasowo=fgetc(odc);
printf("%d",czasowo-48);
tab[i]=(czasowo-48);
i++;
}
tmp=i;
for(i=tmp;i!=0;i--)
{
tab[i]=tab[i]*j;
wynik=wynik+tab[i];
j*=2;
}
printf("Wynik to : %d", wynik);
fclose(odc);
}
}
Proszę o pomoc.