Сортировка матрицы подсчётом - 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию сравнения для использования в функции qsort
  3. Определяем размер матрицы (X)
  4. Инициализируем матрицу случайными значениями от 1 до X*X
  5. Выводим матрицу на экран
  6. Сортируем матрицу по возрастанию с помощью функции qsort
  7. Выводим отсортированную матрицу на экран
  8. Сортируем матрицу по убыванию с помощью функции qsort
  9. Выводим отсортированную матрицу на экран
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.125 из 5
Похожие ответы