Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

program przeliczający liczby dziesiętne na binarne

07 Lis 2008 09:56 2895 2
  • Poziom 12  
    Chciałbym odwrócić wartości tablicy, mianowicie program ma obliczać liczby dziesiętne na liczby binarne. Więc dziele każdą liczbę dziesiętną przez dwa i resztę z jej dzielenia z % 2, zapisuje jako element tablicy. Jednakże wynik binarny czyta się od drugiej strony, wiec chciałbym by program wyświetlał wartosci odwrotnie np tab[5], tab[4] itd.

    Dodano po 54 [sekundy]:

    Code:

    #include<stdio.h>
    #include<conio.h>
    main()
    {
          int l,i;
          int c;
          int z,k=0;
          int tab[7];
          scanf("%d",&l);
          z=l;

          for (k=0; z!=0; k++)
          {
                z=z/2;
          c=z % 2;
          tab[k]=c;
          }
         
     
    for(i=0; i<k; ++i)
    {printf("%d%d",tab[k-i]);}
    getch();
    return 0;
    }
  • Pomocny post
    VIP Zasłużony dla elektroda
    Widzę, że poprawiłeś temat :)

    W pierwszej pętli najpierw powinieneś obliczać c, a dopiero później dzielić z przez dwa (licząc tak jak teraz gubisz jeden bit).

    Pamiętaj, że trzecia część nagłowka pętli for (u Ciebie k++) wykonuje się przed sprawdzeniem warunku zakończenia pętli. Czyli po ostatnim przebiegu pierwszej pętli k wskazuje nie na ostatni zapisany, ale poza ostatni zapisany element tablicy tab.

    Wystarczy, że policzysz od k-1 do 0 i masz:
    Code:
    for(i = k-1; i >= 0; --i)
    
        printf("%d", tab[i]);
    printf("\n");

    Pozdrawiam,
    Dr.Vee