Проверить, все ли строки матрицы упорядочены по убыванию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Проверить, все ли строки матрицы упорядочены по убыванию. Если нет, найти первую неупорядоченную строку и упорядочить. Матрицу вводить вручную. без функций string.h, math.h. Для начинающих Спасибо

Решение задачи: «Проверить, все ли строки матрицы упорядочены по убыванию»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
void selectSort(float a[], long size) {
    long i, j, k; 
    float x;
    for( i=0; i < size; i++) {
        k=i; x=a[i];
        for( j=i+1; j < size; j++)
            if (  a[j] < x ) {
                k=j; x=a[j];    
            }
            a[k] = a[i]; a[i] = x;
    }
}
 
int main(){
 
    setlocale(LC_ALL, "rus");
    int n, m;
    printf("Введите размер матрицы: ");
    scanf("%d%d", &n, &m);
    float ** matrix = (float **) malloc(n*sizeof(float*));
    for (int i = 0; i < n; ++i){
        matrix[i] = (float *) malloc(m*sizeof(float));
        for (int j = 0; j < m; ++j){
            printf("a[%d][%d] = ", i, j);
            scanf("%f", &matrix[i][j]);
        }
    }
 
    for (int i = 0; i < n; ++i){
        selectSort(matrix[i], m);
    }
 
    for(int i = 0; i < n; ++i){
        for(int j = 0; j < m; ++j){
            printf("%g ", matrix[i][j]);
        }
        printf("\n");
        free(matrix[i]);
    }
 
    return 0;
}

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

Вывод программы позволяет пользователю ввести размер матрицы, затем программа запрашивает значения элементов матрицы, используя функцию scanf. После этого применяется алгоритм сортировки выбором к каждой строке матрицы. В конце программа выводит отсортированные строки на экран, затем освобождает память, выделенную под матрицу.

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

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