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