Funkcja potęgowanie (uwzględnienie do potęgi minusowej)
Ostatnio zmodyfikowano 2013-11-13 00:38
lvcky Temat założony przez niniejszego użytkownika |
Funkcja potęgowanie (uwzględnienie do potęgi minusowej) » 2013-11-12 22:06:15 Witam serdecznie. Zrobiłem taki kod na funkcję potęgującą: int potega( int liczba, int doPotegi ) { float wynik = 1; if( doPotegi != 0 ); { for( int i = 0; i < doPotegi; i++ ) { wynik = wynik * liczba; } } return wynik; } Wszystko ładnie chodzi, ładnie liczy. Ale chciałem zrobić również wariant gdyby użytkownik chciał wprowadzić liczbę do potęgi ujemnej. Napisałem coś takiego ale nie chodzi to jak powinno: int potega( int liczba, int doPotegi ) { float wynik = 1; if( doPotegi != 0 ) { for( int i = 0; i < doPotegi; i++ ) { wynik = wynik * liczba; return wynik; } if( doPotegi < 0 ) { for( int i = 0; i < doPotegi; i++ ) wynik = wynik * liczba; return 1 / wynik; } } } |
|
docentpp |
» 2013-11-12 22:11:17 Funkcja potega jest typu int. Jeśli podnosimy liczbę do potęgi ujemnej, to wynik jest typu RZECZYWISTEGO ! |
|
lvcky Temat założony przez niniejszego użytkownika |
» 2013-11-12 22:22:29 ok, gdzieś jeszcze muszę mieć błąd bo złe wyniki mam.. Tylko nie wiem gdzie. |
|
kubek3898 |
» 2013-11-12 22:27:35 Z tego co widzę warunkiem kończącym pracę pętli przy potędze ujemnej jest i < doPotegi, a przy inkrementacji zmiennej i ono raczej nie będzie prawdziwe. |
|
docentpp |
» 2013-11-12 22:30:46 Popraw swój kod na następujący.... |
|
lvcky Temat założony przez niniejszego użytkownika |
» 2013-11-12 22:45:04 Niestety nic do nie dało :) może jak zamieszczę wywowałnie funkcji: case '2': { int liczba, doPotegi; cin >> liczba; cin >> doPotegi; liczba = potega( liczba, doPotegi ); cout << liczba; system( "pause" ); system( "cls" ); break; } |
|
docentpp |
» 2013-11-12 22:59:53 Zamiast for( int i = 0; i < doPotegi; i++ )
zrób tak : for( int i = doPotegi; i < 0; i++ )
I jaki rezultat ? |
|
killjoy |
» 2013-11-12 23:59:58 Typ zwracany funkcji jest int , a powinien być float , tudzież double . |
|
« 1 » 2 |