Вот программа на C, которая переворачивает массив или строку:
#include <stdio.h>
#include <string.h>
// Function to reverse an array
void reverseArray(int arr[], int size) {
int start = 0;
int end = size - 1;
while (start < end) {
// Swap elements
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// Move indices towards the center
start++;
end--;
}
}
// Function to reverse a string
void reverseString(char* str) {
int length = strlen(str);
int start = 0;
int end = length - 1;
while (start < end) {
// Swap characters
char temp = str[start];
str[start] = str[end];
str[end] = temp;
// Move indices towards the center
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int arrSize = sizeof(arr) / sizeof(arr[0]);
char str[] = "Hello, World!";
printf("Original array: ");
for (int i = 0; i < arrSize; i++) {
printf("%d ", arr[i]);
}
printf("\nReversed array: ");
reverseArray(arr, arrSize);
for (int i = 0; i < arrSize; i++) {
printf("%d ", arr[i]);
}
printf("\n\nOriginal string: %s", str);
reverseString(str);
printf("\nReversed string: %s", str);
return 0;
}
Эта программа демонстрирует два метода: reverseArrayдля инвертирования целочисленного массива и reverseStringдля реверса строки. Функция reverseArrayиспользует подход с двумя указателями для замены элементов из начальной и конечной позиций до тех пор, пока они не встретятся посередине. Аналогично, функция reverseStringменяет местами символы таким же образом.