Potęgowanie w C

0

Hej,
Zrobiłem program, który pobiera od użytkownika podstawę i wykładnik a następnie przechodzi do potęgowania, ale nie za bardzo rozumiem jak on działa "za kulisami". Czy ktoś wytłumaczyłby mi? Doszedłem do takiego rozwiązania czytając różne podpowiedzi jak go zrobić.

 int podstawa, wykladnik;
                int i;
            printf("Podaj podstawe: ");
            scanf("%d", &podstawa);
            printf("Podaj wykladnik: ");
            scanf("%d", &wykladnik);

            int wynik=1;

            for(i=1; i<=wykladnik;i++)
            {

               wynik=wynik*podstawa;


            }
            printf("%d^%d=%d\n", podstawa,i, wynik);

            return 0;
0

1000 pkt. dla mnie, jeśli sprawy nie mają się raczej tak: Otrzymałeś banalne zadanie jako pracę domową, jednak nie umiesz nic (słownie: "nic") i zerżnąłeś rozwiązanie od kolegi. Boisz się jednak, że jeśli cię Pan(i) zapyta, to zrobisz wielkie oczy i dostaniesz pałę.

0
kmph napisał(a):

1000 pkt. dla mnie, jeśli sprawy nie mają się raczej tak: Otrzymałeś banalne zadanie jako pracę domową, jednak nie umiesz nic (słownie: "nic") i zerżnąłeś rozwiązanie od kolegi. Boisz się jednak, że jeśli cię Pan(i) zapyta, to zrobisz wielkie oczy i dostaniesz pałę.

Mylisz się ;) skończyłem juz edukację...

0

Widzisz problem polega na tym, że na tak postawione pytanie jak Ty je postawłeś trudno odpowiedzieć inaczej jak przepisując Ci jakiś tutorial z podstawami języka C.

Jeśli rzeczywiście sam to skleciłeś czytając różne podpowiedzi, to z pewnością coś jednak wiesz. Możesz zatem postarać się jakoś konkretniej sformułować pytanie?

0
kmph napisał(a):

Widzisz problem polega na tym, że na tak postawione pytanie jak Ty je postawłeś trudno odpowiedzieć inaczej jak przepisując Ci jakiś tutorial z podstawami języka C.

Jeśli rzeczywiście sam to skleciłeś czytając różne podpowiedzi, to z pewnością coś jednak wiesz. Możesz zatem postarać się jakoś konkretniej sformułować pytanie?

No nie wiem jak to przelicza w pętli.

1

Pomogę ci bo co, g**no się nauczysz.

Spróbuj tego kodu, może zrozumiesz o co w tym chodzi.

 int podstawa, wykladnik;
                int i;
            printf("Podaj podstawe: ");
            scanf("%d", &podstawa);
            printf("Podaj wykladnik: ");
            scanf("%d", &wykladnik);
 
            int wynik=1;
            printf("wynik: ", wynik);
            for(i=1; i<=wykladnik;i++)
            {              
               printf("wykladnik nr: %d\n wynik = wynik * wykladnik:\n %d = %d * %d", i, wynik*podstawa, wynik, podstawa );
               wynik=wynik*podstawa;
            }
            printf("%d^%d=%d\n", podstawa,i, wynik);
 
            return 0;
0

zamień tego printf na tego

printf("wykladnik nr: %d\n wynik = wynik * wykladnik:\n %d = %d * %d\n", i, wynik*podstawa, wynik, podstawa );

bo zabrakło tam nowej linii na końcu \n i mógłby się tekst zlewać gorzej by wyglądało.

1

W ogóle nie wiesz, na czym polegają pętle for? Czy nie rozumiesz konstrukcji: wynik=wynik*podstawa;

0

Zrobiłem program, który pobiera od użytkownika podstawę i wykładnik a następnie przechodzi do potęgowania, ale nie za bardzo rozumiem jak on działa "za kulisami". Czy ktoś wytłumaczyłby mi? Doszedłem do takiego rozwiązania czytając różne podpowiedzi jak go zrobić.

  1. Jak nie mam sklerozy, kod programu krok po kroku da się sprawdzić debuggerem (dobre IDE powinno coś takiego posiadać). Da to +/- jakiś pogląd na to co się dzieje "za kulisami" i co się skąd wzięło. A coś mi się wydaje, że o to Ci chodzi.
  2. Jeśli chciałeś stworzyć kod, którego zadaniem jest obliczanie potęg, to można to zrobić bez pętli. Wystarczy dołączyć odpowiedni plik nagłówkowy i użyć odpowiedniej funkcji w nim zawartej.

PS. Końcowy komunikat Twego programu jest nieco błędny.

0 użytkowników online, w tym zalogowanych: 0, gości: 0