Подумайте чуть, ведь все просто. Есть массив, у него гдето есть середина, или точка симметрии. Она находится как (n div 2). Если массив четной длины, то он делится на 2 равные части, если нечетный - в середине остается один элемент, который ни с кем менять не надо. Сейчас смотрим элементы первой половины for i:=1 to n div 2 запоминаем их x:=a[i]; присваиваем им значения симметричных им элементов с конца a[i]:=a[n-i+1]; например при n=10 a[1]:=a[10-1+1]; А элементам в конце присваиваем значения запомненных первых элементов a[n-i+1]:=x; Все, поменяли.
#include <stdio.h>
#include <math.h>
#include <locale.h>
main()
{
setlocale(0, "");
int x;
double answer = 0;
printf("Введите значение X: ");
scanf("%d", &x);
if (x >= 0)
{
answer = sqrt(pow(x, 3) + 5);
}
else if (x > -3 && x < 0)
{
answer = 3*pow(x, 4) + 9;
}
printf("ответ: %f", answer);
}
Объяснение:
#include <stdio.h> // Библиотека ввода - вывода
#include <math.h> // Математическая библиотека
#include <locale.h> // Библиотека локализации
main()
{
setlocale(0, ""); // Локализация
int x; // Создание целочисленной переменной x
double answer = 0; // Создание вещественной переменной answer для хранения ответа
printf("Введите значение X: "); // Вывод сообщения в консоль
scanf("%d", &x); // Ввод значения x
if (x >= 0) // Если значение переменной x ≥ 0
{
answer = sqrt(pow(x, 3) + 5); // Вычисляем верхнее выражение
}
else if (x > -3 && x < 0) // Иначе, если значение переменной x > -3 И < 0
{
answer = 3*pow(x, 4) + 9; // Вычисляем нижнее выражение
}
printf("ответ: %f", answer); // Вывод ответа
}
Сейчас смотрим элементы первой половины
for i:=1 to n div 2
запоминаем их x:=a[i];
присваиваем им значения симметричных им элементов с конца
a[i]:=a[n-i+1]; например при n=10 a[1]:=a[10-1+1];
А элементам в конце присваиваем значения запомненных первых элементов
a[n-i+1]:=x;
Все, поменяли.