我正在开发一个项目,使用嵌套的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;
}
}
答案 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;
}
}