Язык С++ Ввести одномерный массив вещественных чисел. Если все элементы исходного массива, имеющие целое значение стоят на четных местах, то создать новый массив, записав в него только целые элементы исходного массива в обратном порядке.

1amon1 1amon1    2   02.09.2021 14:30    0

Ответы
missvaleria2 missvaleria2  02.09.2021 14:40

#include <stdio.h>

#include <math.h>

float eps = 0.000001;

int main()

{

float n; scanf("%f", &n);

float a[n];

for (int i=0;i<n;i++)

scanf("%f", a[i]);

char toCopy = 1;

for (int i=1;i<n;i+=2)

if (abs(round(a[i]) - a[i]) > eps)

{toCopy = 0; break;}

if (toCopy)

int b[n/2];

for (int i=n-(n%2), j=0;j<n/2;i-=2, j++)

b[j] = (int)a[i];

}

Объяснение:

Предполагаю, что сначала указывается количество элементов исходного массива. Далее происходит все то, что вы описали. eps - погрешность для определения целого числа, чем оно меньше - тем точнее числа будут определяться как дробные

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика