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

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

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

#include <stdio.h>
#include <stdlib.h>
 
 main()
{
    int mat[4][9],mas[10],i,j,k,max,m,maxst;
    srand(time(NULL));
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++) 
        {
            mat[i][j]=rand()%100;
        }
    }
    printf(" Pervona4alnaya Matrica  \n \n");
    
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++) printf(" %d ",mat[i][j]);
        printf(" \n");
    }
    for (i=0;i<=4;i++) mas[i]=0;
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++)
        {
             mas[i]+=mat[i][j];
        }
    }
    printf("\n");
    for (i=0;i<=4;i++) 
    {
       printf("Summa %d-oi stroki ravna %d ",i+1,mas[i]);
       printf("\n");
    }
 
        max=0;      
    for (k=0;k<=4;k++)
    {
        for (i=0;i<=4;i++)
        {
          if ((mas[i]>max))        
            {                        
                max=mas[i];
                m=i;
            }
          }
           for (j=0;j<=9;j++) 
            printf(" %d ", mat[m][j]);
            printf("\n");
          maxst=max;
          max=0;
          mas[m]=0;
}
        getch(); 
}
как переделать чтобы ещё и внутри строки элементы сортировались по убыванию. переставить строки по сумме элементов я вроде сделал

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
 main()
{
    int mat[5][10],mas[10],i,j,k,max,m,maxst;
    int jmax;
    srand(time(NULL));
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++) 
        {
            mat[i][j]=rand()%100;
        }
    }
    printf(" Pervona4alnaya Matrica  \n \n");
    
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++) printf(" %d ",mat[i][j]);
        printf(" \n");
    }
    for (i=0;i<=4;i++) mas[i]=0;
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++)
        {
             mas[i]+=mat[i][j];
        }
    }
    printf("\n");
    for (i=0;i<=4;i++) 
    {
       printf("Summa %d-oi stroki ravna %d ",i+1,mas[i]);
       printf("\n");
    }
 
        max=0;      
    for (k=0;k<=4;k++)
    {
        for (i=0;i<=4;i++)
        {
          if ((mas[i]>max))        
            {                        
                max=mas[i];
                m=i;
            }
        }
           for (j=0;j<=9;j++) 
            printf(" %d ", mat[m][j]);
            printf("\n");
          maxst=max;
          max=0;
          mas[m]=0;
    }
    
    //bubbleSort
    
    for(i=0;i<=4;i++){
    
        
        for(j=0;j<=9;j++){
            
            for(k=9;k>j;k--){
                
                if(mat[i][k]>mat[i][k-1]){ //swap el-ts
                
                    m = mat[i][k-1];
                    mat[i][k-1] = mat[i][k];
                    mat[i][k] = m;
                    
                }
            
            }
        
        }
    
    }
    
    printf(" Sorted!!!  \n \n");
    
    for (i=0;i<=4;i++)
    {
        for (j=0;j<=9;j++) printf(" %d ",mat[i][j]);
        printf(" \n");
    }
        getch(); 
}

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

  1. Ввод матрицы 5x10 с помощью функции rand()%100.
  2. Вывод исходной матрицы.
  3. Нахождение суммы каждой строки и сохранение в отдельном массиве.
  4. Поиск максимальной суммы и индекса строки с максимальной суммой.
  5. Сортировка матрицы по убыванию с помощью алгоритма сортировки пузырьком.
  6. Вывод отсортированной матрицы.

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


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

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

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