Я работаю над проектом, чтобы распечатать таблицу экспоненциальных чисел, используя вложенные циклы 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;
}
}
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;
}
}