2013-09-23 75 views
-5
protected void calculatePowerButton_Click(object sender, EventArgs e) 
{ 
    int numberInt = int.Parse(numberPowerTextBox.Text); 
    int powerInt = int.Parse(powerTextBox.Text); 
    int resultInt = 1; 

    while (numberInt > 0) 
    { 
     resultInt *= numberInt * powerInt; 
     numberInt--; 
     powerInt--; 
    } 
     resultTextBox.Text = resultInt.ToString(); 


} 

嗨,我嘗試當用戶使用輸入一個值numberInt ABD POWERINT來計算功率使用計算能力,同時循環試圖while循環

(numberInt到POWERINT的功率)。

的結果將是resultTextBox顯示....

但是當我調試它送花兒給人等於0

+1

有您使用的這一個循環的一個原因? –

+1

它甚至沒有權力...如果powerInt> numberInt結果總是爲0 – wudzik

+0

http://msdn.microsoft.com/en-us/library/system.math.pow.aspx有什麼問題Math.Pow函數在C# ? –

回答

2

下面的代碼將做的工作給你的結果。

Math.Pow(numberInt , powerInt); 

更新, 既然你不能使用Math.Pow使用以下,

int numberInt = int.Parse(numberPowerTextBox.Text); 
int powerInt = int.Parse(powerTextBox.Text); 
int resultInt = 1; 
int i = 0; 
while (powerInt > i) { 
    resultInt = resultInt * numberInt; 
    i++; 
} 
resultTextBox.Text = resultInt.ToString(); 
+0

我的工作坊,我只能用while循環 –

+0

@PéBin,試試更新回答 –

+2

@ ChamikaSandamal的'resultInt'應該用'1'初始化,否則結果總是'Zero'。 –

4

試試這個:

for (int i=0;i<powerInt;i++) 
{ 
    resultInt*=numberInt; 
} 

或while循環:

while(powerint-->0) 
{ 
    resultInt*=numberInt; 
} 

兩個答案都是相同的。他們正在計算numberInt^powerInt。

如果你不知道數字的n次方是第n次乘以有電次數。像:

2^3 = 2 * 2 * 2

3^4 = 3 * 3 * 3 * 3

0

您的代碼不計功率在所有所以這是錯誤的。每次powerInt < numberInt然後它會導致0!

試試這個代碼如下:

protected void calculatePowerButton_Click(object sender, EventArgs e){ 
    int numberInt = int.Parse(numberPowerTextBox.Text); 
    int powerInt = int.Parse(powerTextBox.Text); 
    int resultInt = 1; 

    for(int i=0; i<powerInt; i++){ 
     resultInt *= numberInt; 
    } 
    resultTextBox.Text = resultInt.ToString(); 
} 

上面的代碼應該是正確的。 :)

1

讓這個嘗試,以及:

protected void calculatePowerButton_Click(object sender, EventArgs e) 
{ 
    int numberInt = int.Parse(numberPowerTextBox.Text); 
    int powerInt = int.Parse(powerTextBox.Text); 
    int resultInt = 1; 

    while (powerInt > 0) 
    { 
     resultInt *= numberInt; 
     powerInt--; 
    } 
    resultTextBox.Text = resultInt.ToString(); 
}