2013-09-23 78 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(); 
}