Отсортировать последовательность по убыванию модифицированным методом простого выбора - C (СИ)
Формулировка задачи:
Расположить положительные элементы последовательности по убыванию модифицированным методом простого выбора.
Листинг программы
- #include <math.h>
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 10
- int main()
- {
- int a[N],i,min,j,buf;
- srand(time(0));
- printf("Ishodnii massiv:\n");
- for (i=0;i<N;i++)
- {
- printf("a[%i]=%3i\n",i,a[i]=rand()%100-50);
- }
- for (i=0;i<N-1;i++)
- {
- min=i;
- for (j=i+1;j<N;j++)
- if (a[j]>a[min]) min=j;
- buf=a[i];
- a[i]=a[min];
- a[min]=buf;
- }
- printf("\n");
- printf("Otsortirovannii massiv:\n");
- for (i=0;i<N;i++)
- {
- printf("a[%i]=%3i\n",i,a[i]);
- }
- getch();
- return 0;
- }
Как сделать так чтобы отрицательные элементы оставались на своих местах после сортировки?
Решение задачи: «Отсортировать последовательность по убыванию модифицированным методом простого выбора»
textual
Листинг программы
- #include <math.h>
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 10
- int main()
- {
- int a[N],i,min,j,buf, y;
- srand(time(0));
- printf("Ishodnii massiv:\n");
- for (i=0;i<N;i++)
- printf("a[%i]=%3i\n",i,a[i]=rand()%100-50);
- for (i=0;i<N-1;i++)
- {
- y=i;
- while(a[y]<0 && y<N-1)
- y++;
- min=y;
- for (j=i+1;j<N;j++)
- if (a[j]>a[min] && a[j]>-1 && a[i]>-1)
- min=j;
- if(a[i]>-1)
- {
- buf=a[i];
- a[i]=a[min];
- a[min]=buf;
- }
- }
- printf("\n");
- printf("Otsortirovannii massiv:\n");
- for (i=0;i<N;i++)
- {
- printf("a[%i]=%3i\n",i,a[i]);
- }
- getch();
- return 0;
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется размер массива N
- Инициализируется генератор случайных чисел
- Выводится исходный массив
- Реализуется сортировка методом простого выбора с использованием временной переменной buf для хранения значения элемента, который нужно переместить
- Выводится отсортированный массив
- Ждется нажатие клавиши для выхода из программы
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д