Переписать в обратном порядке элементы вещественного массива, расположенные между минимумом и максимумом - C (СИ)
Формулировка задачи:
2)Переписать в обратном порядке элементы вещественного массива, расположенные между минимумом и максимумом массива. Все элементы массива различны.
Решение задачи: «Переписать в обратном порядке элементы вещественного массива, расположенные между минимумом и максимумом»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include <Windows.h> #define SIZE 20 // (rand() % (max + 1 - min)) + min int main(int argc, char *argv[]) { srand(time(NULL)); int arr[SIZE], min, max, i, max_pos = 0, min_pos = 0; int temp_element = 0; for (i = 0; i < SIZE; i++) { arr[i] = rand() % 99 + 1; printf("%2d ",arr[i]); } min = arr[0]; max = arr[0]; for (i = 0; i < SIZE; i++) { if (arr[i] < min) { min = arr[i]; min_pos = i; } if (arr[i] > max) { max = arr[i]; max_pos = i; } } printf("\nmin pos %d, max pos %d\n", min_pos, max_pos); int counter; int *ptr_min = &arr[min_pos]; int *ptr_max = &arr[max_pos]; if (max_pos > min_pos) { for (i = min_pos, counter = 0; i < max_pos-counter; i++, counter++) { temp_element = arr[i]; arr[i] = arr[max_pos - counter]; arr[max_pos - counter] = temp_element; } } else if (min_pos > max_pos) { for (i = max_pos, counter = 0; i < min_pos-counter; i++, counter++) { temp_element = arr[i]; arr[i] = arr[min_pos - counter]; arr[min_pos - counter] = temp_element; } } else { printf("Minimum and maximum elements have the same index. Cannot evaluate \n"); return 0; } for (i = 0; i < SIZE; i++) { printf("%2d ", arr[i]); } system("\npause"); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлен массив arr типа int размерностью SIZE, и инициализированы начальные значения переменных min и max равными первому элементу массива.
- Заполняется массив arr случайными числами от 1 до 99 с помощью функции rand().
- Находятся индексы минимального и максимального элементов массива с помощью цикла for и сравнениями.
- Выводится на экран индексы минимального и максимального элементов.
- Создаются указатели на минимальный и максимальный элементы.
- Если индекс максимального элемента больше индекса минимального элемента, то производится перестановка элементов в обратном порядке с помощью цикла for и временной переменной temp_element.
- Если индекс минимального элемента больше индекса максимального элемента, то производится перестановка элементов в обратном порядке с помощью цикла for и временной переменной temp_element.
- Если индекс минимального и максимального элементов одинаковый, то выводится сообщение об ошибке и программа завершается.
- Выводится на экран обновленный массив arr.
- Программа ожидает нажатия клавиши с помощью функции system(
\npause
). - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д