[ 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).
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.