c++
Створити двовимірний масив 8х10, що складається з цілих чисел. Отриману
матрицю транспонувати та вивести на друк елементи головної діагоналі та
діагоналі, розташованої під головною. Результати розмістити у двох рядках.
Ответы
Ось приклад коду на C++ для реалізації цієї задачі:
#include <iostream>
#include <algorithm>
const int N = 8;
const int M = 10;
int main() {
int arr[N][M];
// Ініціалізуємо елементи матриці деякими значеннями
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M; ++j) {
arr[i][j] = i + j;
}
}
// Транспонуємо матрицю
for (int i = 0; i < N; ++i) {
for (int j = i+1; j < M; ++j) {
std::swap(arr[i][j], arr[j][i]);
}
}
// Виводимо на друк елементи головної діагоналі та діагоналі, розташованої під нею
std::cout << "Elements of the main diagonal: ";
for (int i = 0; i < N; ++i) {
std::cout << arr[i][i] << " ";
}
std::cout << std::endl << "Elements of the subdiagonal: ";
for (int i = 0; i < N-1; ++i) {
std::cout << arr[i+1][i] << " ";
}
std::cout << std::endl;
return 0;
}
У цьому коді спочатку ініціалізується двовимірний масив 8х10, який складається з цілих чисел. Потім матриця транспонується за допомогою циклів і функції std::swap(). Нарешті, виводяться на друк елемент
і чомусь не виводиться сам масив 8х10, лише головна діаголналь і та що під нею :(
Предупреждение C6201 Индекс "9" находится вне диапазона от "0" до "7" для буфера "arr", возможно, размещенного в стеке.