Сортировка пузырьком - C (СИ) (76206)

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

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

Помогите пожалуйста написать программу,не получается,НА ЯЗЫКЕ СИ! Задание: В матрице n*m отсортируйте нечетные строки в порядке возрастания элементов k столбца. вот коды которые можно использовать в программе (но надо без функции!!!)
void sort(int a[n])
{
 
int t=0, i, j;
    // цикл для прохода по массиву
    for (i=0; i<n; i++)
    {
        // цикл для перебора элементов
        for (j=n-1; j>=1; j--)
        {
            // если последний элемент меньше предыдущего, то меняем местами
            if (a[j]<a[j-1])
            {
                t=a[j]; a[j]=a[j-1];  a[j-1]=t;
            }
        }
    }
}

Решение задачи: «Сортировка пузырьком»

textual
Листинг программы
int sor(int a[][5]);
int vvod(int a[][5]);
int vyvod(int a[][5]);
 
#include <stdio.h>
 
int main(void)
{   
   int a[5][5];
   
   vvod(a);
   sor(a);
   vyvod(a);
   
   return 0;
}
 
 
int vyvod(int a[][5]) {
 
   int i,j;
   
   printf("\n");
   printf("\nOtsortirovanny` variant: ");
   printf("\n\n");
   
   sor(a);
   
   for(i=0; i<5; i++) {
      for(j=0; j<5; j++) {
         printf(" %i",a[i][j]);
      }
      printf("\n");
   }
   printf("\n");
   return 0;
}
 
 
int vvod(int a[][5]) {
 
   int i,j;
   
   printf("\nVvodite elementy:\n");
   
   for(i=0; i<5; i++) {
      for(j=0; j<5; j++) {
         scanf("%i",&a[i][j]);
      }
   }
   
   printf("\n");
   printf("\nIsxodny` variant: ");
   printf("\n\n");
   
   for(i=0; i<5; i++) {
      for(j=0; j<5; j++) {
         printf(" %i",a[i][j]);
      }
      printf("\n");
   }
   return 0;
}
 
 
int sor(int a[][5]) {
 
   int i,j,h,prom;
 
   for(h=0; h<5; h++) {
      for(i=0; i<5; i=i+2) {
         for(j=0; j<4; j++) {
            if(a[i][j] > a[i][j+1]) {
               prom=a[i][j];
               a[i][j]=a[i][j+1];
               a[i][j+1]=prom;
            }
         }  
      }
   }
   return 0;
}

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

  1. int sor(int a[][5]); - это функция, которая принимает двумерный массив a размером 5x5 и выполняет сортировку пузырьком. Возвращает функция 0.
  2. int vvod(int a[][5]); - это функция, которая запрашивает у пользователя ввод элементов для массива a и сохраняет их в массив. Возвращает функция 0.
  3. int vyvod(int a[][5]); - это функция, которая выводит на экран массив a в отсортированном виде. Возвращает функция 0.
  4. int main(void) - это главная функция программы, которая считывает с диска массив a, вызывает функцию сортировки sor(a), выводит на экран отсортированный массив a с помощью функции vyvod(a). Возвращает функция 0.
  5. int vyvod(int a[][5]) - это функция, которая выводит на экран массив a. Для этого используются два вложенных цикла for, которые проходят по всем элементам массива. Каждое число выводится с помощью функции printf(). После вывода всех чисел вызывается функция printf(\n);, чтобы перейти на новую строку. Возвращает функция 0.
  6. int vvod(int a[][5]) - это функция, которая запрашивает у пользователя ввод элементов для массива a. Для этого используются два вложенных цикла for, которые проходят по всем элементам массива. В каждой итерации внутреннего цикла вызывается функция scanf(), которая считывает с диска число и сохраняет его в соответствующий элемент массива a. После ввода всех чисел вызывается функция printf(\n);, чтобы перейти на новую строку. Возвращает функция 0.
  7. int sor(int a[][5]) - это функция, которая выполняет сортировку пузырьком. Для этого используется три вложенных цикла for. Внешний цикл for проходит по всем строкам массива a. В каждой итерации внешнего цикла вызывается внутренний цикл for, который проходит по всем элементам текущей строки. Если текущий элемент больше следующего, то они меняются местами с помощью временной переменной prom. Внутренний цикл for выполняется до тех пор, пока не будет отсортированна текущая строка. Возвращает функция 0.

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


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

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

12   голосов , оценка 3.833 из 5