Сортировка массива методом выбора - 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в ноль. - Цикл завершается. Таким образом, в результате выполнения этого кода будет выведено максимальное количество удачных дней подряд.