Поменять порядок элементов массива, стоящих на нечетных местах, на обратный - C (СИ)

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

Составить функцию, которая меняет порядок элементов массива, стоящих на нечетных местах, на обратный. Например, для исходного массива 1,2,3,4,5,6 результатом является 5,2,3,4,1,6
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int nol(int a[], int b) {
    int i;
    for (i = 1; i<b; i++)
        a[i] = 0;
    return 0;
}
 
int zap(int a[], int b, int d1, int d2){
    srand(time(NULL));
    int i;
    for (i = 0; i<b; i++)
        a[i] = d1 + rand() / (RAND_MAX / (d2 - d1 + 1));
    return 0;
}
 
int vivod(int a[], int b){
    int i;
    for (i = 0; i<b; i++)
        printf("%d  ", a[i]);
    printf("\n");
    return 0;
}
 
void f(int *m, int s) {
    int temp;
    int b = 0;
    int e = 0;
    if (s = 1)
        e = s - 1;
    else
        e = s - 2;
    while (b < e) {
        temp = m[b];
        m[b] = m[e];
        m[e] = temp;
        b += 2;
        e -= 2;
    }
}
 
int main(void) {
    int mas[10];
    zap(mas, 10, 1, 50);
    vivod(mas, 10);
    f(mas, 10);
    zap(mas, 10, 1, 50);
    vivod(mas, 10);
    return 0;
}
помогите,поажлуйста

Код к задаче: «Поменять порядок элементов массива, стоящих на нечетных местах, на обратный - C (СИ)»

textual
#include <stdio.h>
 
void reverse(int* arr, int size) {
    int last = size - 2 + size%2;
    int i;
    for (i = 0; i < size/2; i += 2) {
        int tmp = arr[i];
        arr[i] = arr[last-i];
        arr[last-i] = tmp;
    }
}
 
int main() {
    int arr[] = { 1, 2, 3, 4, 5, 6 };
    int size = sizeof(arr)/sizeof(arr[0]);
    int i;
    reverse(arr, size);
    for (i = 0; i < size; ++i) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

11   голосов, оценка 3.545 из 5


СДЕЛАЙТЕ РЕПОСТ