我的老师要求我为这个程序提供一个特定的格式,我已经就乘法表编写了这个格式。我已经完成了程序的其余部分并且它已经过测试并且运行良好到目前为止,唯一的问题是我需要匹配她要求的确切格式但我却遇到了麻烦。
我的代码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int num;
char selection;
do
{
cout << "MENU\n";
cout << "a) Generate Multiplication Table\n";
cout << "q) Quit the program\n";
cout << "Please make a selection: ";
cin >> selection;
if (selection == 'a' || selection == 'A') {
cout << "Please enter a number for your multiplication table: \n";
cin >> num;
while(num < 1 || num > 10)
{
cout << "Invalid Selection\n";
cout << "Re-enter a number between 1 and 10\n";
cin >> num;
}
cout << '\n';
cout << "MULTIPLICATION TABLE: " << num << "'s\n";
cout << '\n';
for (int row = 1; row <= num; row ++)
{
cout << setw(2) << row << "|";
for (int col = 1; col <= num; col ++)
{
cout << setw(3) << col * row << "| ";
// cout << setw(3) << row << " "
}
cout << endl;
}
}
else if (selection == 'q' || selection == 'Q') {
cout << " You have chosen to quit the program. Thank you for using!\n";
}
/*else if (selection != 'a' || selection != 'q')
{
cout << "Invalid Selection\n";
cout << '\n';
cout << "MENU\n";
cout << "a) Generate Multiplication Table\n";
cout << "q) Quit the program\n";
cout << "Please make a selection: ";
cin >> selection;
}*/
}while (selection != 'q');
}
打印后的乘法表应该如下所示:它包含---和|
最后一个问题是,我试图弄清楚如何在顶部打印数字,如下所示。数字1-7水平重复。我似乎无法在没有for循环的情况下弄清楚如何进行操作,因为数字应该从1-用户输入打印但是间距不能正常工作而且我不确定如果这是正确的方法。
我的输出如下(代码格式看起来更精确):乘法表:7&#39;
1| 1| 2| 3| 4| 5| 6| 7|
2| 2| 4| 6| 8| 10| 12| 14|
3| 3| 6| 9| 12| 15| 18| 21|
4| 4| 8| 12| 16| 20| 24| 28|
5| 5| 10| 15| 20| 25| 30| 35|
6| 6| 12| 18| 24| 30| 36| 42|
7| 7| 14| 21| 28| 35| 42| 49|
我将发布文本输出以防万一:
乘法表:7&#39;
1| 1| 2| 3| 4| 5| 6| 7|
2| 2| 4| 6| 8| 10| 12| 14|
3| 3| 6| 9| 12| 15| 18| 21|
4| 4| 8| 12| 16| 20| 24| 28|
5| 5| 10| 15| 20| 25| 30| 35|
6| 6| 12| 18| 24| 30| 36| 42|
7| 7| 14| 21| 28| 35| 42| 49|