[ show321 @ 15.03.2010. 16:45 ] @
Pozdrav Svima!

Treba mi pomoc u vezi zadatka gde je potrebno uneti jedan dekadni broj, a da se kao izlaz ispise njegova vrednost u oktalnom brojnom sistemu. Imam problem, sve se kompajlira bez greske ali kada treba da ispise vrednost , on ispise u potpunosti neku drugu vrednost, pa bih molio da mi neko pomogne.

Evo sta sam uradio:
Code:
#include <iostream>
#include <cmath>
using namespace std;
int konverzija(int);
int main(void)
{
    int b;
    cout<<"Unesite jedan broj:"<<endl;
    cin>>b;
    cout<<"Rezultat je:"<<konverzija(b)<<endl;
    return 0;
}
int konverzija(int b)
{
     int konverzija,r,n,i=0;
        r=n%8;
        b=b+pow(10,i)*r;
        n=n/8;
        i++;
        return konverzija;
}


A evo sta ispise:


[ t0d0r @ 15.03.2010. 16:57 ] @
Koristis promenljive koje nisu inicijalizovane...
U funkciji konverzija(int) promenljivoj n nije dodeljena vrednost, a
koristis je u izracunavanju r-a.
[ Mihajlo Cvetanović @ 15.03.2010. 18:53 ] @
I ne samo to nego imaš i promenljivu konverzija (nazvao si je isto kao i ime funkcije, što ja ne bih radio), čiju vrednost na kraju vraćaš, a nigde u funkciji je nisi ni upotrebio.

Druga stvar, promenljiva b ti je ulazni parametar funkcije a u funkciji se toj promenljivoj dodaje nešto, to mi je sumnjivo. Treća stvar, fali ti petlja. Moraš da izdvajaš cifre jednu po jednu, a to se radi u petlji.

Trenutno kako stvari stoje, trebalo bi parametar funkcije zapravo da bude n (a ne b), a unutar funkcije da imaš promenljivu b (umesto n) koja će na početku biti postavljena na nulu, a na kraju to bi trebalo da bude rezultat funkcije. Tada bi sve ostale instrukcije imale smisla (naravno kad ih ubaciš u petlju koja se vrti sve dok je n > 0).