Поменять местами первый и минимальный элементы массива - C (СИ) (71462)

Узнай цену своей работы

Формулировка задачи:

Заданный массив. Поменять местами его первый и минимальный элементы. Если элементов с минимальным значением несколько, взять последний из них Сделать в Си. Заранее спасибо

Решение задачи: «Поменять местами первый и минимальный элементы массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define N 40
  6. int max_elem_idx(int *arr, int sz);
  7. void input_array(int *A, int A_size);
  8. void print_array(int *A, int A_size);
  9.  
  10. int main()
  11. {
  12.     int i;
  13.     int A[N];
  14.     srand(time(0));
  15.     input_array(A, N);
  16.     puts("\nDo:");
  17.     print_array(A, N);
  18.     for (i = N - 1; i != 0; --i)
  19.         if (A[i]<0){
  20.             int tmp = A[i];
  21.             A[i] = A[max_elem_idx(A, N)];
  22.             A[max_elem_idx(A, N)] = tmp;
  23.             break;
  24.         }
  25.     puts("\nPosle:");
  26.     print_array(A, N);
  27.     getchar();
  28.     return 0;
  29.  
  30.    
  31. }
  32. int max_elem_idx(int *arr, int sz)
  33.     {
  34.         int i = 0;
  35.         int idx = i;
  36.         for (i = 1; i<sz; ++i){
  37.             if (arr[idx]<arr[i])
  38.                 idx = i;
  39.     }
  40.     return idx;
  41. }
  42.  
  43.  
  44. void input_array(int *A, int A_size)
  45. {
  46.     int i;
  47.     int a = -100;
  48.     int b = 100;
  49.     for (i = 0; i<A_size; i++)
  50.     {
  51.         A[i] = a + rand() % (b - a + 1); //генерируем массив
  52.     }
  53. }
  54.  
  55. void print_array(int *A, int A_size)
  56. {
  57.     for (int i = 0; i<A_size; i++)
  58.     {
  59.         printf("%4d", A[i]);
  60.         //printf("\n");
  61.     }
  62.     puts("");
  63. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O и работой со случайными числами
  2. Определяем размер массива N
  3. Объявляем функцию max_elem_idx, которая находит индекс максимального элемента в массиве
  4. Объявляем функцию input_array, которая считывает массив из стандартного ввода
  5. Объявляем функцию print_array, которая выводит массив на стандартный вывод
  6. В функции main создаем массив A заданного размера и инициализируем его случайными числами с помощью функции input_array
  7. Выводим массив на экран с помощью функции print_array
  8. В цикле проходим по массиву и меняем местами минимальный элемент и элемент с максимальным индексом
  9. Выводим измененный массив на экран с помощью функции print_array
  10. В функции main возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы