Задать матрицу 8х8 с псевдослучайными числами и упорядочить побочную диагональ по убыванию - C (СИ)
Формулировка задачи:
Доброго времени суток, долго мучался с двумерным массивом и его упорядочиванием, в конце концов что то получилось, матрицу выводит, но считает не верно, ещё и после упорядочивания выводит матрицу не 8х8, а 7х10 с неполной последней строкой, подскажите, пожалуйста, в чём я ошибся?
Заранее спасибо!
#include <stdio.h> #include <locale.h> #include <stdlib.h> #define MIN_VALUE -100 #define MAX_VALUE 100 #define ROWS 8 #define COLS 8 int main(int argc, char **argv) { setlocale(LC_ALL, "RUSSIAN"); int A[8][8]; int i, k, n,t; n = 8; printf("Матрица до сортировки\n"); for (i = 0; i < ROWS; ++i) { for (k = 0; k < COLS; ++k) { A[i][k] = rand() % 50-25;//заплнене случайным числами printf("%d\t", A[i][k]); } printf("\n"); // каждую строку матрицы выводим на новой строке } for(i = 0; i<n-1; i++) { for(k = i-1; k<n; k++) { if (A[k][n-1+k] < A[i][n-1+i]) { t = A[i][n-1+k]; A[k][n-1+k] = A[i][n-1+i]; A[i][n-1+i] = t; } } } printf("Матрица после сортировки\n"); for (i = 0; i < ROWS; ++i) { for (k = 0; k < COLS; ++k) { printf("%d\t", A[i][k]); } } return 0; }
Решение задачи: «Задать матрицу 8х8 с псевдослучайными числами и упорядочить побочную диагональ по убыванию»
textual
Листинг программы
#include <stdio.h> #include <locale.h> #include <stdlib.h> #define ROWS 8 #define COLS 8 int main(int argc, char **argv) { setlocale(LC_ALL, "RUSSIAN"); int A[ROWS][COLS]; int i, k, t, j; printf("Матрица до сортировки\n"); for (i = 0; i < ROWS; ++i){ for (k = 0; k < COLS; ++k) printf("%3d", A[i][k] = rand() % 50-25); printf("\n"); } for(j = 0; j < ROWS; j++) { for(i = 0; i < ROWS - 1; i++) { for(k = COLS - 1; k > 0; k--) { if (A[i][k] > A[i + 1][k - 1]) { t = A[i + 1][k - 1]; A[i + 1][k - 1] = A[i][k]; A[i][k] = t; } } } } printf("Матрица после сортировки\n"); for (i = 0; i < ROWS; ++i){ for (k = 0; k < COLS; ++k) printf("%3d", A[i][k]); printf("\n"); } return 0; }
Объяснение кода листинга программы
В этом коде задается матрица 8х8 с помощью которой реализуется следующая логика:
- Инициализация матрицы A случайными числами от 25 до 49 с помощью функции rand() % 50-25.
- Вывод содержимого матрицы до сортировки.
- Упорядочивание побочной диагонали матрицы по убыванию с помощью алгоритма сортировки пузырьком.
- Вывод отсортированной матрицы.
- Завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д