Переворачивание массива задом наперед

нужно перевернуть массив задом на перед(первый элемент меняется местами с последним, второй с предпоследним и тд.)

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <locale.h>
void scan(int* , size_t );

void print(int* , size_t );


int get_max(int* , size_t );


int get_min(int* , size_t );



void invert(int*, size_t);


float get_average(int* a, size_t);


int main()
    {
    setlocale(LC_ALL, "Russian");
    size_t n;
    printf("Введите размер массива: ");
    scanf("%llu", &n);
    int* bebra = (int*)calloc(n, sizeof(int));

    scan(bebra, n);
    print(bebra, n);
    int max = get_max(bebra, n);
    printf("Значение максимального элемента: %d\n", max);
    int min = get_min(bebra, n);
    printf("Значение минимального  элемента: %d\n", min);
    float avg = get_average(bebra, n);
    printf("Средне арифметическое значение:  %f\n", avg);
    invert(bebra, n);
    print(bebra, n);
    }

void scan(int* a, size_t n)
    {
    printf("Ввод массива: \n");
    for (size_t i = 0; i < n; i++)
        {
        printf("arr[%llu] = ", i);
        scanf("%d", &a[i]);
        }
    }


void print(int* a, size_t n)
    {
    printf("Печать массива: \n");
    for (size_t i = 0; i < n; i++)
        {
        printf("arr[%llu] = %d\n", i, a[i]);
        }
    }


int get_max(int* a, size_t n)
    {
    int max = INT_MIN;
    for (size_t i = 0; i < n; i++)
        {
        if (max < a[i])
            {
            max = a[i];
            }
        }
    return max;
    }


int get_min(int* a, size_t n)
    {
    int min = INT_MAX;
    for (size_t i = 0; i < n; i++)
        {
        if (min > a[i])
            {
            min = a[i];
            }
        }
    return min;
    }


void invert(int* a, size_t n)
    {
    for (size_t i = 0; i < n; i++)
        {
        a[i] = a[i] * -1;
        }
    }


float get_average(int* a, size_t n)
    {
    float sum = 0;
    for (size_t i = 0;i < n;i++)
        {
        sum = sum + a[i];
        }
    return sum / n;
    }

Ответы (1 шт):

Автор решения: Harry

Попробуйте разобраться, как работает этот код:

void invert(int* a, size_t n)
{
    for(size_t i = 0, j = n-1; i < j; i++, j--)
    {
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
    }  
}
→ Ссылка