Перестановка столбцов по убыванию значений минимальных элементов - C (СИ)

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

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

Переставить столбцы по убыванию значений минимальных элементов столбцов
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    srand(time(NULL));
    int n, m, i, j, g, k=0, a[100][100];
 
    printf("vvedit  k-st stovbciv ");
    scanf("%d",&n);
    printf("vvedit  k-st ryadkiv ");
    scanf("%d",&m);
    for (i=0;i<n;i++){
    for (j=0;j<m;j++){
       a[i][j]=-10+rand()%20;
       printf("%3d ",a[i][j]);
    }
    printf("\n");
    }
    int tru=0;
    printf("radky yaki mayut vid'emni elementy\n");
    for (i=0;i<n;i++)
    {
    for (j=0;j<m;j++)
    {
    if (a[i][j]<0 ) tru=1;
    }
    if (tru==1) printf("%d\n",i);
    tru=0;
    }
    int min=a[0][0];
 
    for (i=0;i<n;i++)
    {
     if (a[i][0]<min) min=a[i][0];
    }
    printf("\nmin=%d",min);
    k=a[0][j];
    for (j=0;j<m;j++)
    {
 
    for (i=0;i<n;i++)
    {
    if (a[i][j]<k ) k=a[i][j];
 
    }
    if (k<min)
        {
            for (i=0;i<n;i++)
            {
             g=a[i][j-1];
             a[i][j-1]=a[i][j];
             a[i][j]=g;
            }
 
        }
        k=a[i+1][j+1];
    }
    printf("\n\n\n\n");
    for (i=0;i<n;i++)
    {
    for (j=0;j<m;j++)
    {
    printf("%3d",a[i][j]);
    }
    printf("\n");
    }
    return 0;
}
Что-то написал , но не работает . Помогите доделать

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main() {    
    int a[100][100];
    int n, m, i, j, g, k;
    int min1, min2;
 
    srand(time(NULL));
    printf("vvedit  k-st stovbciv ");
    scanf("%d", &n);
    printf("vvedit  k-st ryadkiv ");
    scanf("%d", &m);
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            a[i][j] = rand() % 20 - 10;
            printf("%5d", a[i][j]);
        }        
        printf("\n");
    }
 
    printf("radky yaki mayut vid'emni elementy\n");
    for (i = 0; i < m; i++) {
        j = 0;
        while (j < n && a[i][j] >= 0) {
            j++;
        }
        if (j < n) {
            printf("%d\n", i);
        }
    }
 
    // сортировка пузырьком
    for (i = 1; i < n; i++) {
        for (j = n-1; j >= i; j--) {
            // находим минимальные элементы в столбцах j и j-1
            min1 = a[0][j-1];
            min2 = a[0][j];
            for (k = 0; k < n; k++) {
                if (a[k][j-1] < min1) {
                    min1 = a[k][j-1];
                }
                if (a[k][j] < min2) {
                    min2 = a[k][j];
                }
            }            
            if (min1 < min2) {
                // меняем j и j-1 столбцы местами
                for (k = 0; k < n; k++) {
                    g = a[k][j-1];
                    a[k][j-1] = a[k][j];
                    a[k][j] = g;
                }
            }
        }
    }
 
    printf("\n");
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            printf("%5d", a[i][j]);
        }
        printf("\n");
    }    
 
    return 0;
}

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

В этом коде:

  1. Объявляются массив и переменные для ввода данных от пользователя.
  2. Заполняются случайными значениями массив a[100][100].
  3. Выводятся на экран полученные значения массива.
  4. Пользователю предлагается ввести номер строки, содержащей минимальный элемент.
  5. В цикле с помощью функции scanf() вводится номер строки.
  6. В этом же цикле осуществляется поиск минимального элемента в выбранной строке.
  7. Если найденный минимальный элемент не равен нулю, то с помощью функции printf() выводится номер строки.
  8. Затем осуществляется сортировка массива a[100][100] методом пузырька.
  9. В цикле происходит сравнение минимальных элементов в текущих столбцах и при необходимости производится перестановка столбцов.
  10. После сортировки массив выводится на экран.

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


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

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

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