用C ++创建一个权力表

时间:2015-10-07 02:28:25

标签: c++ function for-loop nested-loops exponent

我正在开发一个项目,使用嵌套的for循环打印出一个指数数字表。用户指定要打印的行数和功率数。例如,如果用户指定2行和3个幂,则程序应打印1,1,1和2,4,9(2 ^ 1,2,3等)。我应该注意这是针对课程的,我们不允许使用cmath,否则我会使用pow()。我似乎无法弄清楚嵌套for循环中的正确函数,它可以改变基数和指数的两个值。这是我到目前为止所拥有的。谢谢你的帮助!

#include <iostream>
#include <iomanip>
using namespace std;

int main ()
{
    int r, p, a;
    cout << "The program prints a table of exponential powers.\nEnter the number of rows to print: ";
    cin >> r;
    cout << "Enter the number of powers to print: " ;
    cin >> p;
    cout << endl;

    for (int i = 1 ; i <= r; i++)
    {
        cout << setw(2) << i;       
        for (int q = 1; q <= i; q++)
        {
            a = (q * q); //This only works for static numbers...
            cout << setw(8) << a;
        }
        cout << endl;
    }
}

2 个答案:

答案 0 :(得分:0)

for (int i = 1 ; i <= r; i++)
{
    cout << setw(2) << i;
    int a = 1;
    for (int q = 1; q <= r; q++)
    {
        a = (a * i);
        cout << setw(8) << a;
    }
    cout << endl;
}

有几点需要注意。首先,您可以通过维护变量a并将其乘以每个幂的i来计算功率。另外,我认为你希望你的第二个循环的上限是r而不是i。

答案 1 :(得分:0)

你需要一对夫妇改变积累数字的方式来增加权力。

此外,您正在使用错误的变量来结束内部for循环中的循环。

#include <iostream>
#include <iomanip>
using namespace std;

int main ()
{
   int r, p, a;
   cout << "The program prints a table of exponential powers.\nEnter the number of rows to print: ";
   cin >> r;
   cout << "Enter the number of powers to print: " ;
   cin >> p;
   cout << endl;

   for (int i = 1 ; i <= r; i++)
   {
      cout << setw(2) << i;       
      a = 1;   // Start with 1
      for (int q = 1; q <= p; q++) // That needs to <= p, not <= i
      {
         a *= i; // Multiply it by i get the value of i^q
         cout << setw(8) << a;
      }
      cout << endl;
   }
}