Wątek przeniesiony 2015-01-13 23:01 z C/C++ przez ŁF.

C - obsługa plików/zmiennych

0

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.

0

Cóż mogę powiedzieć ...
http://4programmers.net/Forum/1005274
... może sam siebie oceń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1