Сортировка по убыванию (методом пузырька) - C (СИ)

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

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

Задание: добавить сортировку слов по убыванию (по методу пузырька).
#include "stdafx.h"
#include <conio.h>
#include <iostream>

int main()
{
    setlocale(0, "Russian");
    char s[100];
    //char ns[100] = { 0 };
    int p = 0, b = 0, k = 0, g = 0, w = 0; //o = 0; z=0;    
    printf("Введите слова через пробел: ");
    gets_s(s); 
    char z[42] = { 'B','b','c','C','D','d','F','f','G','g','H','h','J','j','K','k','L','l','M','m','N','n','P','p','Q','q','R','r','S','s','T','t','V','v','W','w','X','x','Y','y','Z','z' };
    for (int i = 0; s[i] != 0; i++)
    {
        if (s[i] != ' '&&s[i] != '\t' && (s[i - 1] == ' ' || s[i - 1] == '\t' || i == 0))
        {
            g = 0;
            w = 0;
            for (p = 0; z[p] != 0; p++)
            {
                if (s[i] == z[p])
                {
                    g = 1;
                }
                if (g == 1)
                {
                    w = 0;
                    break;
                }
            }
            if (g == 0) w = 1;
            if (w == 0)
            {
                b = i;
                while (s[i] != ' '&&s[i] != '\t'&&s[i] != 0) { i++; }
                k = i;
                for (i = b; i < k; i++)
                {
                    printf("%c", s[i]);
                }
                printf("\n");
            }
        }
    }
    _getch();
    return 0;
}

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

textual
Листинг программы
for (int i = 0; i < n - 1; i++) // для всех элементов кроме последнего цикл
  {
    for (int j = (n - 1); j > i; j--) // просмотриваем элементы с конца
    {
      if (x[j - 1] > x[j]) // если текущий элемент меньше предыдущего
      {
        int temp = x[j - 1]; // меняем их местами
        x[j - 1] = x[j];
        x[j] = temp;
      }
    }
  }
 
   // массив на экран:
    for (i  = 0; i < n; i++)
        printf("%.f ", x[i]);
    printf("\n");

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

  1. int temp = x[j - 1]; - в этой строке переменной temp присваивается значение x[j - 1]. Это делается для того, чтобы сохранить значение элемента, который будет перемещён.
  2. x[j - 1] = x[j]; - в этой строке значение x[j] присваивается x[j - 1]. Это делается для того, чтобы поменять местами элементы массива.
  3. x[j] = temp; - в этой строке x[j] присваивается значение temp. Это делается для того, чтобы вернуть перемещённое значение на своё исходное место.
  4. printf(%.f , x[i]); - в этой строке выводится на экран значение x[i] с плавающей точкой.
  5. printf(\n); - в этой строке на экран выводится символ новой строки, что позволяет перейти к следующему элементу массива при выводе.

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


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

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

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