Make a Table of Any number

10:30 0 Comments A+ a-

Problem :
Write a C++ program which takes a positive integer N from the user, and prints the multiplication table of size N by N. For example, if the user enters 10, the following table should be displayed by your program.
     1   2   3   4   5   6   7   8   9    10
 +----------------------------------------
 1 | 1   2  3   4   5   6   7   8    9    10
 2 | 2   4  6   8   10 12 14 16  18  20
 3 | 3   6  9   12 15 18 21 24  27  30
 4 | 4   8  12 16 20 24 28 32  36  40
 5 | 5  10 15 20 25 30 35 40  45  50
 6 | 6  12 18 24 30 36 42 48  54  60
 7 | 7  14 21 28 35 42 49 56  63  70
 8 | 8  16 24 32 40 48 56 64  72  80
 9 | 9  18 27 36 45 54 63 72  81  90
10|10 20 30 40 50 60 70 80  90 100
Note: The output of your program should follow the above output format exactly. You will have to use appropriate format manipulator(s) to achieve this.
Solution:
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int n; //n represents positive integer 
int x; //x is used to print - in the table
cout<<"Please enter a positive Integer"<<endl;
cin>>n; //integer n declared with input value
while(n<1) //check for either the integer in non-zero and non-negative.
{
cout<<"Integer must be positive"<<endl;
cout<<"Please enter a positive Integer again"<<endl;
cin>>n; //input integer again in case of non-zero and non-negative integer
}
cout<<endl;
cout<<" "<<" "<<" "<<" "; //Displaying 3 spaces before first word of display
for(int i=1; i<=n;i++) //control the display of integers on upper side of table
{
cout<<setw(4)<<i; //setw() used to control the spacing 
}
cout<<endl;
cout<<" "<<" "<<" "<<"+"; //display of first spaces and + sign in 2nd row
x=n*4; //x represents the number of time  "-" is displayed in 2nd row
for(int j=0;j<x;j++) //control of "-" sign in 2nd row
cout<<"-";
cout<<endl;
for(int k=1;k<=n;k++) //control the display of integer on the left most side of each row and also the table elements to be shown
{
cout<<setw(2)<<k<<" "<<"|"; //display integer from 1-n and a "|" sign with it
for(int l=1;l<=n;l++) //to display the table elements after multilplication in their respective position using set width
{
cout<<setw(4)<<k*l;
}
cout<<endl;
}


return 0;

}