C => przeliczanie z dziesiętnego na binarny


(Lukaszm Zdw) #1

hej mam pewien problem z programem w Ansi C

otóż nie chce go skompilować

#include 

main()

{

int i,liczba;

    char bin[8];

  [color=#FF0040] for(i=7;i>-1;--i){[/color]

        bin[i]=(char)((liczba&1)+48);

        liczba=liczba>>1;

    }//for

    printf("%s",bin);

return (0);

}

niby serwer unix'a twierdzi że w tej linii jest problem


(Sawyer47) #2

int main i tyle. No jeszcze komentarze jednolinijkowe wprowadzono dopiero w C99.


(Lukaszm Zdw) #3

dopisanie int przed main i usunięcie komentarza nic nie dało


(Sawyer47) #4
#include 


int main() {

	int i, liczba;

	char bin[8];

	for( i = 7; i > -1; --i ) {

        bin[i] = (char)( ( liczba & 1 ) + 48 );

        liczba = liczba >> 1;

    } /* for */

    printf("%s", bin);


return 0;

}

Kompiluje się u mnie na gcc -Wall -pedantic

Jaki serwer UNIX-a?


(system) #5

Powinno się kompilować, zaś nie powinno poprawnie działać bez następujących poprawek:

#include 


int main() {

   int i, liczba;

   char bin[9]; /* dodatkowe miejsce na znak końca napisu */

   bin[8]=0; /* znak końca wiersza */

   for( i = 7; i > -1; --i ) {

        bin[i] = (char)( ( liczba & 1 ) + 48 );

        liczba = liczba >> 1;

    } /* for */

    printf("%s", bin);


return 0;

}

(Lukaszm Zdw) #6

no ok skompilował się ale jak teraz zrobić tak żebym ja wprowadzał liczbę w dzisiętnym a on konwertował

a tak w ogóle to chyba coś nie tak bo najpierw liczby pokazuje a później jakieś znaczki


(system) #7

Czytaj post wyżej.

Wprowadzenie jest proste:

printf("Podaj liczbe: ");

scanf("%d",&liczba);