Potęgowanie z funkcją i pętlą
Ostatnio zmodyfikowano 2015-10-19 16:13
fifa7 Temat założony przez niniejszego użytkownika |
Potęgowanie z funkcją i pętlą » 2015-10-13 15:47:13 Witam, jestem (bardzo) początkującym programistą i chciałbym się dowiedzieć dlaczego mój kod potęgujący liczby nie działa i otrzymać ewentualne wskazówki jak zrobić żeby wszystko działało. Co do kodu: p-podstawa w-wykładnik a-powiedzmy... liczba pomocnicza #include <iostream>
using namespace std;
int p, w, a;
int potega( int p, int w ) { a = p; while( w, w == 0, w-- ) { cout << "p*a " << p * a << endl; cout << "p " << p << endl; cout << "w " << w << endl; } return p; }
int main() { cin >> p; cin >> w; potega( p, w ); cout << "main " << p << endl; }
|
|
michal11 |
» 2015-10-13 15:57:55 Masa błędów. 1. niepotrzebne zmienne globalne. 2. argumenty twojej funkcji potega() zakrywają zmienne globalne, czyli działasz na zmiennych lokalnych. 3. Kod w pętli while(która swoja droga ma jakąś dziwna konstrukcję, pewnie pomyliło ci się z for) niż konkretnego oprócz wypisywania nie robi. 4. Jak już wywołujesz funkcję która coś zwraca to wypadałoby gdzieś ta wartość zapisać ( do zmiennej) Najlepiej napisz ten program od początku, przeczytaj kurs na tej stronie dot. pętli, funkcji i operacji matematycznych. W twojej funkcji main() powinna być deklaracja 3 zmiennych p , i wynik. Wczytujesz dane do zmiennych p i w. Następnie do zmiennej wynik przypisujesz wartość z funkcji potega() int wynik = potega( p, w ); . Na koniec możesz sobie ten wynik wypisać. Funkcja potega() jest zadeklarowana poprawnie. W środku zadeklaruj sobie jakąś zmienna pomocnicza na wynik, następnie skorzystaj z pętli for która w razy będzie mnożyła wynik przez p, coś takiego wynikPom = wynikPom * p; (Nie zapomnij o przypisaniu na początku zmiennej wynik wartości 1), i z tej funkcji potega musisz zwrócić zmienną wynikPom. |
|
fifa7 Temat założony przez niniejszego użytkownika |
» 2015-10-13 16:40:20 Widzę że brakuje mi wiedzy. Dużo wiedzy. Przejdę kurs z tej strony od początku. Wcześniej uczyłem się z YT, z kursu C++ Pana Mirosława Zelenta, ale szybciej i lepiej nauczę się z tekstu. Dzięki za pomoc. |
|
mateczek |
» 2015-10-13 18:53:53 Jako podstawowy etap nauki polecam debuger !!! np w google wpisać "youtube debuger codeblock". lub zamiast codeblock inne środowisko którego używasz !!! #include <iostream> using namespace std;
int potega( int liczba, int wykladnik ) { int wynik = 1; for( int i = 1; i <= wykladnik; i++ ) { wynik = wynik * liczba; } return wynik; } int main() { cout << potega( 3, 4 ) << endl; }
Choć do nauki zawsze przyda się jakiś przykład. Gdy się już posiedziało nad materiałem naprawdę warto zobaczyć jak inni to robią !!! |
|
C-Objective |
» 2015-10-19 16:13:52 |
|
« 1 » |