Перше, що треба знати: цей приклад на С# використовує можливості мови, яких нема в Сі, тому дії, що дадуть той же результат, доведеться робити іншим способом.
Спробуймо записати словами, що має робити ця програма (поки що наполовину псевдокод):
#include<stdio.h>
main()
    {
        int i, j;
        int arr[24] =...;// Масив із 24 елементів, кожен з яких лежить у діапазоні від -10 до 26
        ...;//Вивести всі елементи масиву arr у рядок, розділений комами
        int negativeIndexes[] = ...;//масив індексів елементів масиву arr, що мають від'ємне значення
        int negativeIndexesLength = ...;//змінна, що містить кількість знайдених від'ємних елементів
        for (i = 0, j = negativeIndexesLength - 1; i < j; i++, j--)
        {
            int t = arr[negativeIndexes[i]];
            arr[negativeIndexes[i]] = arr[negativeIndexes[j]];
            arr[negativeIndexes[j]] = t;
        }
        ...; //ще раз вивести arr
    }
Ті рядки, де стоять трикрапки — псевдокод, замість якого треба буде написати справжній код. Наприклад, замість int arr[24] =...; має бути щось таке:
int arr[24];
for(i=0; i<24; i++)
    arr[i]=rand()%36 - 10; //rand()%36 — це випадкове число від 0 до 35 включно
Вивід елементів — також циклом (спробуйте написати самостійно).
Масив індексів від'ємних елементів можна зробити такого ж розміру, що й arr (бо від'ємних елементів у ньому гарантовано буде не більше, ніж усіх елементів разом). Сішні масиви не мають вбудованого лічильника елементів (.Length у сішарпі), тому оголошуємо окрему змінну, в яку буде записуватись кількість елементів, які ми туди додали. Пошук від'ємних елементів виглядатиме приблизно так:
        int negativeIndexes[24];
        int negativeIndexesLength=0;
        for(i=0; i<24; i++)
            if(arr[i]<0) negativeIndexes[negativeIndexesLength++]=i;
Найважчу частину я зробив. Тепер скомпонуйте все в одну програму й допишіть те, що лишилось недописаним.