Problem z Funkcją potęgującą

Problem z Funkcją potęgującą
Ursinus
  • Rejestracja:około 12 lat
  • Ostatnio:około 10 lat
  • Postów:161
0

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

Kopiuj
 
#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.

edytowany 2x, ostatnio: flowCRANE
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:15 dni
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

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 5 lat
  • Postów:2412
0
_13th_Dragon
Ile czasu będzie się liczyło pow(1,1000000000) ?
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:15 dni
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Ursinus
  • Rejestracja:około 12 lat
  • Ostatnio:około 10 lat
  • Postów:161
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.