Поменять местами первый и минимальный элементы массива - 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("");
}

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

  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
Похожие ответы