Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

jedan mali problem

[es] :: C/C++ programiranje :: jedan mali problem

[ Pregleda: 2867 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pretender

Član broj: 12407
Poruke: 100
212.124.182.*



Profil

icon jedan mali problem04.08.2003. u 21:42 - pre 223 meseci
Ukucao sam program za n-to stepenovanje unetog broja :


// F-ja za dizanje broja a, na n-ti stepen

# include <iostream.h>
# include <conio.h>

long step(short int x, unsigned short int n); // prototip f-je step

int main()
{
short int a;
unsigned short int n;
long int rezult;

cout << "\n" << " Program podize broj `a` na n-ti stepen";
cout << "\n\n" << " Unesite a: ";
cin >> a;
cout << "\n" << " Unesite n: ";
cin >> n;

rezult= step(a, n);
cout << "\n" << "Rezultat je: " << rezult;

getch();
return 0;
}


long step(short int v, unsigned short int w)
{
?????????????????????????????????????????
if (w<0)
cout << "\n" << "Ne znam da radim sa negativnim stepenima.";
return 0;
???????????????????????????????????????????
if (w==0)
return (1);
if (w==1)
return (v);
return (v * step(v, w-1));
}


i sve je dobro radilo, dok nisam dodao deo izmedju upitnika (kako bih porukom pokrio slucaj n<0). Sada dobijam "Rezultat je 0" za svaku komb. unetih brojeva.

Ako neko zna zasto dolazi do problema, molim da let me no.

Hvala
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: jedan mali problem04.08.2003. u 22:21 - pre 223 meseci
Pre svega, nije mi jasno zašto uopšte proveravaš da li je unsigned manje od nule.
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: jedan mali problem04.08.2003. u 22:30 - pre 223 meseci
Citat:
Pretender:
Code:

if (w<0)
        cout << "\n" << "Ne znam da radim sa negativnim stepenima.";
        return 0;



Treba:

Code:

if (w<0) {
        cout << "\n" << "Ne znam da radim sa negativnim stepenima.";
        return 0;
}


f
 
Odgovor na temu

Pretender

Član broj: 12407
Poruke: 100
212.124.182.*



Profil

icon Re: jedan mali problem04.08.2003. u 23:16 - pre 223 meseci
Dragom Tati :

U pravu si, previd, ali ja sam hteo da vidim zasto gornji kod ne radi, za signed ili unsigned svejedno.


Filmilu :

Hvala.Kapiram gresku, ali izgleda da ne mogu pravilno da postavim sve zagrade (jer dodavanje ovih iziskuje i dodavanje jos nekih), tako da dobijam poruke gresaka.

Ako bi mogao da mi napises ceo kod definicije f-je, bio bih ti zahvalan.
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: jedan mali problem04.08.2003. u 23:56 - pre 223 meseci
Code:

// F-ja za dizanje broja a, na n-ti stepen

# include <iostream>

using namespace std;

long step(int x, unsigned short n); // prototip f-je step

int main()
{
    short a;
    unsigned short n;
    long rezult;

    cout << endl << " Program podize broj `a` na n-ti stepen";
    cout << endl << endl << " Unesite a: ";
    cin >> a;
    cout << endl << " Unesite n: ";
    cin >> n;

    rezult = step(a, n);
    cout << endl << "Rezultat je: " << rezult;

    return 0;
}


long step(short v, unsigned short w)
{

    if (w<0) {
        cout << "\n" << "Ne znam da radim sa negativnim stepenima.";
        return 0;
    }

    if (w==0)
        return (1);
    if (w==1)
        return (v);
    return (v * step(v, w-1));
}


Code:

cd /home/filip/
g++ -o step -Wall step.cc
step.cc: In function `long int step(short int, short unsigned int)':
step.cc:31: warning: comparison is always false due to limited range of data 
   type

Compilation finished at Mon Aug  4 22:54:14


f
 
Odgovor na temu

Pretender

Član broj: 12407
Poruke: 100
*.beotel.net



Profil

icon Re: jedan mali problem05.08.2003. u 03:39 - pre 223 meseci
Sad je ok (`doterao` sam samo definiciju f-je).
Inace, izbrisao sam `unsigned`, pa vise nema upozoravajucih poruka.

Jos jedared hvala.
 
Odgovor na temu

[es] :: C/C++ programiranje :: jedan mali problem

[ Pregleda: 2867 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.