Вывести результат сортировки простого выбора - C (СИ)

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

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

я сделала сортировку, помогите с выводом, не пойму как его написать:
#include <stdio.h>
#pragma hdrstop
#define n 6
 
#pragma argsused
int X[n]; //имя массива
void main ()
{ int i=0, b=0, j=0, min,p; //i-переменная цикла,означающая позицию элемента в массиве;
  //b-переменная для сортировки
  printf("Vvedite %d chisel: ", n);
  for(i=0; i<n; i++)
   {printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки
    scanf("%d", &X[i]);//&- взятие адреса
   }
   for (i = 0; i < n; i++)
     {printf("%d ", X[i]);
     }
   printf("\n\n");
 
   for ( i=0; i<n-1 ; i++)
     {min=i;
      for (j=i+1; j<n; j++)
        {if (X[j]<X[min])
          {min=j;}
          p=X[i];
          X[i]=X[min];
          X[min]=p;
 
        }
      }
 
getchar();
getchar();
}

Решение задачи: «Вывести результат сортировки простого выбора»

textual
Листинг программы
#include <stdio.h>
#pragma hdrstop
#define n 6
 
#pragma argsused
int X[n]; //имя массива
void main ()
{ int i=0, b=0, j=0, min=0,p=0; //i-переменная цикла,означающая позицию элемента в массиве;
//b-переменная для сортировки
printf("Vvedite %d chisel: ", n);
for(i=0; i<n; i++)
{printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки
scanf("%d", &X[i]);//&- взятие адреса
}
for (i = 0; i < n; i++)
{printf("%d ", X[i]);
}
printf("\n\n");
 
for ( i=0; i<n-1 ; i++)
{min=i;
for (j=i+1; j<n; j++)
{if (X[j]<X[min])
{min=j;} }
p=X[i];
X[i]=X[min];
X[min]=p;
 
 
}
for (i = 0; i < n; i++)
{printf("%d ", X[i]);
}
getchar();
getchar();
}

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

  1. В начале кода подключается стандартная библиотека printf.h
  2. Далее, с помощью #pragma hdrstop, останавливается компилятор, чтобы подключать другие заголовочные файлы.
  3. Определяется переменная n типа int со значением 6, которая будет использоваться для определения размера массива.
  4. Создается массив типа int с именем X и размером n.
  5. В функции main() создаются следующие переменные:
    • i - используется как счетчик в цикле, инициализируется значением 0.
    • b - используется для сортировки, инициализируется значением 0.
    • j - используется как счетчик в цикле, инициализируется значением 0.
    • min - используется для хранения минимального значения в текущем проходе цикла, инициализируется значением 0.
    • p - используется для хранения временного значения, инициализируется значением 0.
  6. С помощью цикла for и функции scanf() в массив X загружаются значения, введенные пользователем.
  7. С помощью цикла for и функции printf() выводятся все значения массива X.
  8. С помощью двух вложенных циклов for происходит сортировка массива X методом простого выбора.
    • Внешний цикл идет от i=0 до i<n-1, где n-1 - это количество элементов, которые нужно переставить.
    • Внутренний цикл идет от j=i+1 до j<n.
    • Если X[j] меньше X[i], то меняется значение min, иначе ничего не происходит.
    • Значение min обновляется, и min и p меняются местами с i-ым и min-ым элементами массива X соответственно.
  9. С помощью цикла for и функции printf() выводятся отсортированные значения массива X.
  10. В конце функции main() вызывается функция getchar() для обработки возможных символов в буфере ввода.

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


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

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

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