Problem z Funkcją potęgującą

0

Witam.
Mam napisać funkcję która wczytaną liczbę podniesie do wczytanej potęgi. Zrobiłem więc coś takiego:

 
#include <stdio.h>
#include <stdlib.h>

int potega(int x, int y){
	
	int i;
	for(i=1;i<y;i++){
		x*=x;
	}
	return x;
	
}

int main(int argc, char *argv[]) {
	
	int a, b;
	
	printf("Podaj liczbe calkowita:\n");
	scanf("%d", &a);
	printf("Podaj potege tej liczby:\n");
	scanf("%d", &b);
	
	printf("%d do potegi %d wynosi: %d\n", a, b, potega(a,b));
	
	
	return 0;
}

Wszystko pięknie działa, ale dla potęgi równej 2 czyli do kwadratu, a jak damy większą to zwraca za duży wynik.
Najgorsze jest to, że nie mogę wpaść na to co mam źle. Proszę o pomoc i pozdrawiam.

0

jeżeli y=3;
to pętla for wykona się dwa razy, czyli obliczy ci

  • na pierwszym kroku x*=x; (x2=x1*x1);
  • na drugim kroku x*=x; (x3=x2x2); czyli x3=x1x1x1x1 czyli x4
0

Jeżeli już to jakaś sensowna wersja: http://ideone.com/7cxCve

0

n0name_l dzięki śliczne teraz działa :)

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