Предмет: Информатика, автор: Ruriktwt

Мне нужно написать супер простой код на с++, без лишних библиотек по типу vector итд. Максимум swap и использовать только обычные циклы, переменные, и условия через if. Код должен Шляхом перестановки елементів квадратної дійсної матриці добитися того, щоб її максимальний елемент знаходився в лівому верхньому кутку (позиція (1,1)), наступний по величині елемент матриці (або співпадаючий з тим, який вже знаходиться в позиції (1,1)) – в позиції (2,2), наступний по величині (або співпадаючий з тим, який вже знаходиться в позиції (2,2)) – в позиції (3,3) і т.д., заповнивши таким чином всю головну діагональ.

Ответы

Автор ответа: Davinchii
0

Ответ:

#include <iostream>

using namespace std;

void swap(float &a, float &b) {

float temp = a;

a = b;

b = temp;

}

int main() {

int n;

cout << "Введіть розмір матриці: ";

cin >> n;

float matrix[n][n];

cout << "Введіть елементи матриці:\n";

for(int i = 0; i < n; i++) {

for(int j = 0; j < n; j++) {

cin >> matrix[i][j];

}

}

for(int k = 0; k < n; k++) {

int max_i = k, max_j = k;

for(int i = k; i < n; i++) {

for(int j = k; j < n; j++) {

if(matrix[i][j] > matrix[max_i][max_j]) {

max_i = i;

max_j = j;

}

}

}

swap(matrix[k][k], matrix[max_i][max_j]);

}

cout << "Матриця після перестановки:\n";

for(int i = 0; i < n; i++) {

for(int j = 0; j < n; j++) {

cout << matrix[i][j] << " ";

}

cout << "\n";

}

return 0;

}


Ruriktwt: я уже пробовал подобный метод, но проблема в том, что он начинает строить правильно, но например в матрице 3х3, не пишет 3 число для диагонали
Похожие вопросы
Предмет: Другие предметы, автор: vadimdemidovich20101
Предмет: Окружающий мир, автор: aminarianakhussainov