Задача: Получить квадратную матрицу порядка [latex]n[/latex] [latex]\begin{pmatrix}1 &0 &\cdots & 0 \\ 0 & 1 &\cdots &0 \\ \cdots &\cdots &\cdots \cdots & \cdots \\ 0 & 0 & \cdots & 1\end{pmatrix}[/latex]
Тесты:
n | Матрица |
3 | 1 0 0
0 1 0 0 0 1 |
4 | 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 1 |
6 | 1 0 0 0 0 0
0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int m[n][n]; for(int i=0;i<n;i++) { m[i][i]=1; } for(int i=0;i<n;i++) { for(int y=0;y<n;y++) { if(m[i][y]!=1) { m[i][y]=0; } } } for(int i=0;i<n;i++) { for(int y=0;y<n;y++) { cout<<m[i][y]<<" "; } cout<<"\n"; } return 0; } |
Ход работы:
1. С помощью цикла заполняем главную диагональ единицами.
2. Приравниваем элементы не равные единице к нулю.
3. Вывод массива.
Ссылка на код
— поправьте отступы в программе,
— выводите массив в отдельных циклах, а не одновременно с присваиванием значений.
Всё исправлено.
Хорошо. Зачтено.
Однако заполнение матрицы у Вас несколько вычурно. Более надёжным в плане дальнейшей поддержки был бы такой код