Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozłożenie liczby 8 cyfrowej na tablice, dziwny wynik

Ostatnio zmodyfikowano 2016-03-05 17:40
Autor Wiadomość
StaszekIM
Temat założony przez niniejszego użytkownika
Rozłożenie liczby 8 cyfrowej na tablice, dziwny wynik
» 2016-03-05 17:14:10
Witam

Celem kodu jest jak w temacie rozłożenie 8 cyfrowej liczby integer na pojedyncze liczby wpisane w komórki tablicy. Mógłby mi ktoś wytłumaczyć dlaczego taki kod:
C/C++
void roziwys( int liczba ) {
    int el[ 8 ], i;
    for( i = 7; i >= 0; i-- ) {
        el[ i ] = liczba % 10;
        liczba /= 10;
    }
    for( i = 0; i < 8; i++ ) {
        printf( "%d", el[ i ] );
    }
}

int main() {
    roziwys( 00010001 );
    return 0;
}
Wypluwa mi 00004097? Oraz jak to naprawić? Z góry dziękuję za pomoc

Edit: to mój pierwszy post na forum pisany z komórki, nie wiem czy istnieje opcja wpisania jakoś osobno kodu, w dwóch miejscach powinno być el [ i ] bez spacji, tylko zostaje to sformatowane jako kursywa :)
P-145579
Monika90
» 2016-03-05 17:32:55
00010001 to jest 4097, liczby zaczynające się od zera są przez kompilator C++ traktowane jako zapisane w systemie ósemkowym.

Kod C++ można wstawiać pomiędzy znaczniki
[cpp]
tutaj twój kod
[/cpp]
P-145580
StaszekIM
Temat założony przez niniejszego użytkownika
» 2016-03-05 17:34:40
Dzięki wielkie, istnieje w takim razie jakiś sposób na zmuszenie kompilatora do interpretacji liczby jako dziesiętną?
P-145581
Monika90
» 2016-03-05 17:37:43
Napisz bez początkowych zer: 10001
P-145582
StaszekIM
Temat założony przez niniejszego użytkownika
» 2016-03-05 17:40:25
Dziękuję serdecznie za pomoc :)
P-145583
« 1 »
  Strona 1 z 1