C++ Exercises: Produce a square matrix with 0's down the main diagonal
C++ For Loop: Exercise-69 with Solution
Write a program in C++ to produce a square matrix with 0's down the main diagonal, 1's in the
entries just above and below the main diagonal, 2's above and below that, etc.
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0
Pictorial Presentation:
Sample Solution:-
C++ Code :
#include <iostream>
using namespace std;
int main()
{
int n, i, j, k, m = 0;
cout << "\n\n Print patern........:\n";
cout << "-----------------------------------\n";
cout << " Input number or rows: ";
cin >> n;
for (i = 1; i <= n; i++) {
if (i == 1) {
for (j = 1; j <= i; j++) {
cout << m << " ";
}
for (k = 1; k <= n - i; k++) {
cout << k << " ";
}
}
else {
for (k = i - 1; k >= 1; k--) {
cout << k << " ";
}
cout << m << " ";
for (j = 1; j <= n - i; j++) {
cout << j << " ";
}
}
cout << endl;
}
cout << endl;
}
Sample Output:
Print patern........: ----------------------------------- Input number or rows: 8 0 1 2 3 4 5 6 7 1 0 1 2 3 4 5 6 2 1 0 1 2 3 4 5 3 2 1 0 1 2 3 4 4 3 2 1 0 1 2 3 5 4 3 2 1 0 1 2 6 5 4 3 2 1 0 1 7 6 5 4 3 2 1 0
Flowchart:
C++ Code Editor:
Contribute your code and comments through Disqus.
Previous: Write a program that will print the first N numbers for a specific base.
Next: Write a program in C++ to convert a decimal number to binary number.
What is the difficulty level of this exercise?