Проверить, все ли строки матрицы упорядочены по убыванию - 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. После этого применяется алгоритм сортировки выбором к каждой строке матрицы. В конце программа выводит отсортированные строки на экран, затем освобождает память, выделенную под матрицу.