-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();


}

嗨,当用户使用 while 循环将值输入 numberInt abd PowerInt 时,我试图计算功率

(numberInt 的 powerInt 次方)。

结果将显示在resultTextBox中......

但是当我调试它时的结果总是等于 0

4

5 回答 5

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

于 2013-09-23T05:49:44.810 回答
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();
于 2013-09-23T05:49:26.167 回答
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();
}
于 2013-09-23T06:17:42.663 回答
0

您应该能够使用名称惊人的 Math.Pow 方法进行此计算:

http://msdn.microsoft.com/en-us/library/system.math.pow.aspx

于 2013-09-23T05:50:08.767 回答
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();
}

上面的代码应该是正确的。:)

于 2013-09-23T06:02:46.710 回答