Поменять местами первый и минимальный элементы массива - C (СИ) (71462)
Формулировка задачи:
Заданный массив. Поменять местами его первый и минимальный элементы. Если элементов с минимальным значением несколько, взять последний из них Сделать в Си. Заранее спасибо
Решение задачи: «Поменять местами первый и минимальный элементы массива»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 40
- int max_elem_idx(int *arr, int sz);
- void input_array(int *A, int A_size);
- void print_array(int *A, int A_size);
- int main()
- {
- int i;
- int A[N];
- srand(time(0));
- input_array(A, N);
- puts("\nDo:");
- print_array(A, N);
- for (i = N - 1; i != 0; --i)
- if (A[i]<0){
- int tmp = A[i];
- A[i] = A[max_elem_idx(A, N)];
- A[max_elem_idx(A, N)] = tmp;
- break;
- }
- puts("\nPosle:");
- print_array(A, N);
- getchar();
- return 0;
- }
- int max_elem_idx(int *arr, int sz)
- {
- int i = 0;
- int idx = i;
- for (i = 1; i<sz; ++i){
- if (arr[idx]<arr[i])
- idx = i;
- }
- return idx;
- }
- void input_array(int *A, int A_size)
- {
- int i;
- int a = -100;
- int b = 100;
- for (i = 0; i<A_size; i++)
- {
- A[i] = a + rand() % (b - a + 1); //генерируем массив
- }
- }
- void print_array(int *A, int A_size)
- {
- for (int i = 0; i<A_size; i++)
- {
- printf("%4d", A[i]);
- //printf("\n");
- }
- puts("");
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и работой со случайными числами
- Определяем размер массива N
- Объявляем функцию max_elem_idx, которая находит индекс максимального элемента в массиве
- Объявляем функцию input_array, которая считывает массив из стандартного ввода
- Объявляем функцию print_array, которая выводит массив на стандартный вывод
- В функции main создаем массив A заданного размера и инициализируем его случайными числами с помощью функции input_array
- Выводим массив на экран с помощью функции print_array
- В цикле проходим по массиву и меняем местами минимальный элемент и элемент с максимальным индексом
- Выводим измененный массив на экран с помощью функции print_array
- В функции main возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д