好了,所以我讀的程序來創建這裏給出你自己的冪函數(Write a C program to calculate pow(x,n))運行時錯誤來創建自己的電源功能
我讀它,它使用此函數計算功耗第1種方法:
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(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'。 –