Сортировка массива методом выбора - C (СИ)
Формулировка задачи:
Всем добрый вечер.Не успеваю решить все задачи Люди помогите
Как можно отсортирововать методом выбора?
Листинг программы
- #include <stdio.h>
- #include <locale.h>
- #define n 4
- int main()
- { int a[n][n],i,j,min,min1;
- setlocale(LC_ALL, "Rus");
- printf("Матрица\n");
- for(i=0;i<n;i++)
- { for(j=0;j<n;j++)
- { a[i][j]=rand()%50;
- }
- printf("\n");
- }
- for(i=0;i<n;i++)
- { for(j=0;j<n;j++)
- printf("%d ",a[i][j]);
- printf("\n");
- }
- min=a[0][0];
- for(i=0;i<n/2;i++)
- {
- for(j=0;j<n/2;j++)
- if(min>a[i][j])
- min=a[i][j];
- }
- for(i=n/2;i<n;i++)
- {
- for(j=n/2;j<n;j++)
- {
- if(min1>a[i][j])
- min1=a[i][j];
- }
- }
- if(min>min1)
- min=min1;
- printf("\nmin=%d",min);
- return 0;
- }
Решение задачи: «Сортировка массива методом выбора»
textual
Листинг программы
- Var n,i,j,k:integer;
- a:array [1..100] of integer;
- begin write ('укажите, сколько дней длился поход:');
- readln(n);
- write('задавайте высоту каждого дня:');
- read(a[1]);
- k:=0;
- j:=0;
- for i:=2 to n do
- begin read (a[i]);
- if a [i-1]<a[i]
- then j:=j+1
- else
- begin if j>k
- then k:=j;
- j:=0
- end
- end;
- if j>k
- then writeln('максимальное количество удачных дней подряд', j:0)
- else writeln('максимальное количество удачных дней подряд*=', k:0)
- end.
Объяснение кода листинга программы
В этом коде сортируется массив из 100 целых чисел, представляющих собой высоты различных дней, по возрастанию. Затем код подсчитывает количество последовательных удачных (т.е. с возрастающей высотой) дней, используя технику метод выбора
.
Вот список действий, выполняемых в коде:
- Задаются начальные значения переменных:
n
- количество дней в походеi
- счётчик дней в циклеj
- счётчик количества удачных днейk
- счётчик максимального количества удачных днейa
- массив высот дней
- Пользователю предлагается ввести количество дней похода и начальную высоту первого дня.
- Цикл проходит по всем дням похода, за исключением первого (т.к. высота первого дня уже задана).
- В каждой итерации цикла считывается высота текущего дня.
- Если текущая высота меньше, чем высота предыдущего дня, то увеличивается счётчик
j
, который отслеживает количество удачных (с возрастающей высотой) дней. - Если
j
большеk
, то обновляется значениеk
как максимальное количество удачных дней. - Если
j
большеk
, то выводится сообщение с максимальным количеством удачных дней подряд. - Если
j
не большеk
, то сбрасывается счётчикj
в ноль. - Цикл завершается. Таким образом, в результате выполнения этого кода будет выведено максимальное количество удачных дней подряд.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д