使用 C++ 创建 Table 次幂

Creating a Table of Powers with C++

我正在开发一个项目,使用嵌套的 for 循环打印出 table 的指数数。用户指定要打印的行数和幂数。例如,如果用户指定 2 行和 3 次方,则程序应打印 1,1,1 和 2,4,9(2^1,2,3 等)。我应该注意这是针对 class 的,我们不允许使用 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;
    }
}
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。

你需要两个人来改变累积一个数的幂的值的方式。

此外,您在内部 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;
   }
}