확인을 자체 전원 기능을 만들 수 (Write a C program to calculate pow(x,n))런타임 오류가
나는 그것이이 기능을 사용하여 전력을 계산 첫번째 방법이다 읽어
int power(int x, unsigned int y)
{
if(y == 0)
return 1;
else if (y%2 == 0)
return power(x, y/2)*power(x, y/2);
else
return x*power(x, y/2)*power(x, y/2);
}
나는이 프로그램의 개념을 가지고 있으며 정확한 결과를 제공합니다.
이제 power(x, y/2)*power(x, y/2)
이 작성되어의 제곱을 계산합니다. 그래서 내 power()
함수가 정확하면 power(power(x,y/2),2)
으로 바꿀 수 있습니다. 즉, power(x,y/2)
의 제곱을 계산하는 것입니다. 그래서
, 나는이 내 프로그램을 변경 :
는int power(int x, unsigned int y)
{
if(y == 0)
return 1;
else if (y%2 == 0)
return power(power(x, y/2),2); // Square of power(x,y/2)
else
return x*power(power(x, y/2),2); // x*Square of power(x,y/2)
}
int main()
{
int x = 2;
unsigned int y = 3;
printf("%d\n", power(x, y));
return 0;
}
위의 프로그램은 런타임 오류을 제공합니다.
런타임 오류에 대한 이유가 무엇인지 알 수 없습니다. 누구든지 제발 도와 주실 래요?
그리고이 기능에 어떤 입력을 전달하는? 확실히 우리는 추측 할 필요가 없도록 완전한 프로그램을 제공하는 것이 쉬웠을 것입니다. –
@DavidHeffernan 업데이트 – Jerky
내부에서 함수'power'를 호출 할 때 스택 오버플로가 발생하여 두 번째 매개 변수가'2'로 전달됩니다. –