Wpis z mikrobloga

Mam pewien problem z programem. Oto kod:
http://wrzuc.se/images/5bf975d83e30f.png
Mianowicie gdy ma zwrócić wartość 1 dzielone przez coś (większe od 1) to zamiast zwracać ułamka zwraca zawsze 1. Przeszukałem już pół internetu i nic nie działa (mnożenie przez 1.0, double, float itd).
Jakieś pomysły? Bo widocznie błąd jest nie tam gdzie go szukam.

#programowanie #c++ #visualstudio
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

0. najpierw ci się wykona pętla, a potem ci się sprawdzi warunek
1. m "musi być" większe od zera żeby pętla w ogóle się wykonała
2. m razy mnożysz w * n
2.1 nic nie podstawiasz pod n (nie jest ci do niczego potrzebne)
_____
wywal n
  • Odpowiedz
@Major303:

w = w * n;
Jakiego typu jest „n”?

Poza tym, co ty tak właściwie chcesz tu policzyć? _M razy pomnóż 1*N_ - po co to? Toż to zawsze będzie jeden.
  • Odpowiedz
@xan-kreigor: @asunez: @asunez:
Tak jak myślałem błąd był nie tam gdzie go szukałem. Trzeba w pętli <= m zamienić na abs(m), bo w przypadku ujemnego m pętla po prostu nie startowała.
Program ma służyć do obliczania dowolnej potęgi (nawet o wykładniku ujemnym).

Aczkolwiek doceniam pomoc.
  • Odpowiedz