Упорядочить массив по возрастанию - C (СИ) (70324)
Формулировка задачи:
1)Вывести все элементы массива находящиеся в диапазоне между средним и наименьшим значением
2)Упорядочить выходной массив по возрастанию
3)При этом элементы из пункта 1) оставить на своих местах
Буду благодарен за помощь
Дан массив из 10 элементов
1)Вывести все элементы массива находящиеся в диапазоне между средним и наименьшим значением
2)Упорядочить выходной массив по возрастанию
3)При этом элементы из пункта 1) оставить на своих местах
Помогите
Решение задачи: «Упорядочить массив по возрастанию»
textual
Листинг программы
#include <stdio.h> #include <Windows.h> #define ARRAY_SIZE 20 #define LOW -10 #define HIGH 10 void bubble_sort(int *list, int n){ int c, d, t; for (c = 0; c < (n - 1); c++){ for (d = 0; d < n - c - 1; d++){ if (list[d] > list[d + 1]){ t = list[d]; list[d] = list[d + 1]; list[d + 1] = t; } } } } int main() { srand(time(NULL)); int *Arr = malloc(ARRAY_SIZE * sizeof(int)); int i,j; for (i = 0; i < ARRAY_SIZE; i++) { Arr[i] = rand() % (HIGH + 1 - LOW) + LOW; printf("%3d ", Arr[i]); } int *min = &Arr[0]; int min_index = 0; int *middle_element = Arr[ARRAY_SIZE / 2]; for (i = 0; i < ARRAY_SIZE; i++) { if (Arr[i] < *min) { *min = Arr[i]; min_index = i; } } printf("\n\nThe average is:%d and the minimal is:%d ", Arr[ARRAY_SIZE/2], *min); printf("\n"); if (min_index < (ARRAY_SIZE / 2)) { printf("\nThe interval between the minimal and average\n"); for (i = min_index; i <= ARRAY_SIZE / 2; i++) { printf("%d ", Arr[i]); } printf("\n\nThe sorted interval\n"); bubble_sort(&Arr[min_index], (ARRAY_SIZE / 2 + 1 - min_index)); for (i = min_index; i <= ARRAY_SIZE / 2; i++) { printf("%d ", Arr[i]); } } else if (min_index > (ARRAY_SIZE / 2)) { printf("\nThe interval between the average and minimal\n"); for (i = ARRAY_SIZE / 2; i <= min_index; i++) { printf("%d ", Arr[i]); } printf("\n\nThe sorted interval\n"); bubble_sort(&Arr[ARRAY_SIZE / 2], (min_index + 1 - ARRAY_SIZE / 2)); for (i = ARRAY_SIZE / 2; i <= min_index; i++) { printf("%d ", Arr[i]); } } else printf("\n\nThe middle element is minimal element\n\n"); printf("\n"); printf("\nThe result is:\n"); for (i = 0; i < ARRAY_SIZE; i++) { printf("%3d ", Arr[i]); } printf("\n"); system("pause"); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д