Сортировка матрицы подсчётом - C (СИ)
Формулировка задачи:
Имеется некоторая квадратная матрица 3х3 с элементами, расположенными по убыванию (от 9 до 1 соответственно). Надо, используя метод подсчёта, переделать матрицу таким образом, чтоб в каждой строке элементы перерасположились от меньшего к большему. Помогите кто-нибудь? Пожааалуйста... ^____^
Пытался писать, но, увы, ничего не выходит, работать отказывается=(
Вот:
#include "stdafx.h" const int x=3; const int y=3; int i,j; int matrix[x][y]={9,8,7,6,5,4,3,2,1}; void showMatrix(int mass[x][y]); void sortMatrix(int mass[x][y]); void main() { showMatrix(matrix); sortMatrix(matrix); } void showMatrix(int matrix[x][y]) { for(i=0;i<x;i++){ for(j=0;j<y;j++) printf(" %d",matrix[i][j]); printf("\n");}} void sortMatrix(int matrix[x][y]) {int k; for(i=0;i<x;i++) k=0; for(j=0;j<3;j++){ if((matrix[i][y]<matrix[j][y])||((martix[j][y]==martix[j][y])&&(i<j))) { k++; } b[k][y]=matrix[j][y];}
Решение задачи: «Сортировка матрицы подсчётом»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int cmpAsc(const void *a, const void *b){ return *(int*)a - *(int*)b; } int cmpDesc(const void *a, const void *b){ return *(int*)b - *(int*)a; } #define X 3 int main(void){ int matr[X][X], i, j, k; printf("\n"); for ( i = 0, k = X * X; i < X; ++i ){ for ( j = 0; j < X; ++j ){ matr[i][j] = k--; printf("%d ", matr[i][j]); } printf("\n"); } printf("\n"); qsort(matr, X * X, sizeof(int), cmpAsc); for ( i = 0; i < X; ++i ) for ( j = 0; j < X; ++j ) printf( ( j < X - 1 ) ? "%d " : "%d\n", matr[i][j]); printf("\n"); qsort(matr, X * X, sizeof(int), cmpDesc); for ( i = 0; i < X; ++i ) for ( j = 0; j < X; ++j ) printf( ( j < X - 1 ) ? "%d " : "%d\n", matr[i][j]); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию сравнения для использования в функции qsort
- Определяем размер матрицы (X)
- Инициализируем матрицу случайными значениями от 1 до X*X
- Выводим матрицу на экран
- Сортируем матрицу по возрастанию с помощью функции qsort
- Выводим отсортированную матрицу на экран
- Сортируем матрицу по убыванию с помощью функции qsort
- Выводим отсортированную матрицу на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д