Отсортировать последовательность по убыванию модифицированным методом простого выбора - 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д