Перестановка элементов квадратной вещественной матрицы - C (СИ)
Формулировка задачи:
Путем перестановки элементов квадратной вещественной матрицы добиться того,
чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине — в позиции (2, 2), следующий по величине — в позиции (3, 3) и т.д., заполнив таким образом всю главную диагональ.
Решение задачи: «Перестановка элементов квадратной вещественной матрицы»
textual
Листинг программы
int main(int argc, char * argv[]) { float arr[3][3] = { {0.1, 1.1, 10.1}, {1.2, 2.2, 20.2}, {2.3, 3.3, 30.3} }; int n = sizeof (arr) / sizeof (arr[0]); float max[n]; int i = 0, j = 0, k = 0; float tmp = 0; //find max n elements for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { for (k = 0; k < n; ++k) { if (arr[j][k] > max[i]) { if (i == 0) { max[0] = arr[j][k]; } else if (i > 0 && arr[j][k] < max[i - 1]) { max[i] = arr[j][k]; } else { continue; } } } } } //replace for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { for (k = 0; k < n; ++k) { if (arr[j][k] == max[i]) { arr[j][k] = arr[i][i]; arr[i][i] = max[i]; } } } } for (i = 0; i < n; ++i) { printf("\n"); for (j = 0; j < n; ++j) { printf("%.3f ", arr[i][j]); } } getchar(); }
Объяснение кода листинга программы
Вот что делает этот код:
- Объявляет квадратную вещественную матрицу arr размером 3x3 и инициализирует ее значениями.
- Находит максимальное значение в матрице, сохраняя его в переменной max.
- Заменяет это максимальное значение на своё исходное положение в матрице.
- Выводит матрицу на экран. Вот список номеров и названий переменных, используемых в коде:
- arr - матрица
- n - размер матрицы
- max - массив для хранения максимальных значений
- i, j, k - индексы для обхода матрицы
- tmp - временная переменная
- getchar() - функция для приостановки выполнения программы до нажатия клавиши Обратите внимание, что в этом коде не используются стандартные функции для работы с матрицами, такие как bubble sort или swap. Вместо этого используются три вложенных цикла для поиска максимального значения и его замены.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д