Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написать на C++

Елизавета Рощупкина Ученик (54), открыт 1 неделю назад
Поменять местами две диагонали

Дан квадратный массив. Поменяйте местами в каждом столбце элементы, стоящие на главной и побочной диагоналях.

Главная диагональ в квадратном массиве идет из левого верхнего угла в правый нижний угол, а побочная — из правого верхнего в левый нижний.

Входные данные

В первой строке дано число n⩽10
. Далее идут n строк по n неотрицательных целых чисел не больше 100

.

Выходные данные

Выведите ответ к задаче.
1 ответ
Андрей Высший разум (477861) 1 неделю назад
 // создание и ввод матрицы
int n;
cin >> n;
vector<vector<int>> matrix(n, vector<int>(n));
for (auto &row: matrix) {
for (auto &cell: row) {
cin >> cell;
}
}

// обмен диагоналей
for (int i = 0; i < n; ++i) {
int tmp = matrix[i][i];
matrix[i][i] = matrix[i][n - i - 1];
matrix[i][n - i - 1] = tmp;
}

// вывод матрицы
for (auto &row: matrix) {
for (auto cell: row) {
cout << cell << ' ';
}
cout << '\n';
}

В стиле языка C:
 int n, matrix[10][10];
cin >> n;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cin >> matrix[i][j];
}
}

// эта часть кода никак не меняется
for (int i = 0; i < n; ++i) {
int tmp = matrix[i][i];
matrix[i][i] = matrix[i][n - i - 1];
matrix[i][n - i - 1] = tmp;
}

for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << matrix[i][j] << ' ';
}
cout << '\n';
}
Похожие вопросы