Сортировка массива методом выбора - C (СИ)

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

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

Всем добрый вечер.Не успеваю решить все задачи Люди помогите Как можно отсортирововать методом выбора?
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #define n 4
  4. int main()
  5. { int a[n][n],i,j,min,min1;
  6. setlocale(LC_ALL, "Rus");
  7. printf("Матрица\n");
  8. for(i=0;i<n;i++)
  9. { for(j=0;j<n;j++)
  10. { a[i][j]=rand()%50;
  11. }
  12. printf("\n");
  13. }
  14. for(i=0;i<n;i++)
  15. { for(j=0;j<n;j++)
  16. printf("%d ",a[i][j]);
  17. printf("\n");
  18. }
  19. min=a[0][0];
  20. for(i=0;i<n/2;i++)
  21. {
  22. for(j=0;j<n/2;j++)
  23. if(min>a[i][j])
  24. min=a[i][j];
  25. }
  26. for(i=n/2;i<n;i++)
  27. {
  28. for(j=n/2;j<n;j++)
  29. {
  30. if(min1>a[i][j])
  31. min1=a[i][j];
  32. }
  33. }
  34. if(min>min1)
  35. min=min1;
  36. printf("\nmin=%d",min);
  37. return 0;
  38. }

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

textual
Листинг программы
  1. Var n,i,j,k:integer;
  2. a:array [1..100] of integer;
  3. begin write ('укажите, сколько дней длился поход:');
  4. readln(n);
  5. write('задавайте высоту каждого дня:');
  6. read(a[1]);
  7. k:=0;
  8. j:=0;
  9. for i:=2 to n do
  10. begin read (a[i]);
  11. if a [i-1]<a[i]
  12. then j:=j+1
  13. else
  14. begin if j>k
  15. then k:=j;
  16. j:=0
  17. end
  18. end;
  19. if j>k
  20. then writeln('максимальное количество удачных дней подряд', j:0)
  21. else writeln('максимальное количество удачных дней подряд*=', k:0)
  22. end.

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

В этом коде сортируется массив из 100 целых чисел, представляющих собой высоты различных дней, по возрастанию. Затем код подсчитывает количество последовательных удачных (т.е. с возрастающей высотой) дней, используя технику метод выбора. Вот список действий, выполняемых в коде:

  1. Задаются начальные значения переменных:
    • n - количество дней в походе
    • i - счётчик дней в цикле
    • j - счётчик количества удачных дней
    • k - счётчик максимального количества удачных дней
    • a - массив высот дней
  2. Пользователю предлагается ввести количество дней похода и начальную высоту первого дня.
  3. Цикл проходит по всем дням похода, за исключением первого (т.к. высота первого дня уже задана).
  4. В каждой итерации цикла считывается высота текущего дня.
  5. Если текущая высота меньше, чем высота предыдущего дня, то увеличивается счётчик j, который отслеживает количество удачных (с возрастающей высотой) дней.
  6. Если j больше k, то обновляется значение k как максимальное количество удачных дней.
  7. Если j больше k, то выводится сообщение с максимальным количеством удачных дней подряд.
  8. Если j не больше k, то сбрасывается счётчик j в ноль.
  9. Цикл завершается. Таким образом, в результате выполнения этого кода будет выведено максимальное количество удачных дней подряд.

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы