Консультация № 192469
25.01.2018, 17:13
0.00 руб.
0 1 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Помогите понять как сделать задачу C++
Даны натуральное число N и действительные числа A1, …, AN. Заменить в последовательности A1, …, AN единицей числа, равные или превосходящие единицу, а нулем числа, меньшие единицы. Получить (1+R)/(1+S), где R – сумма всех членов последовательности, меньших единицы, S – сумма всех членов последовательности, равных или превосходящих единицу.

Обсуждение

давно
Старший Модератор
312929
1973
26.01.2018, 07:42
общий
это ответ
Здравствуйте, Anderson2314!

Попробуйте для начала такой вариант:
[code lang=text]#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
unsigned int i, N;
cout << "Enter N: ";
cin >> N;
double* A = new double[N];
cout << "Enter A1...A" << N << ": ";
for (i=0; i<N; i++)
cin >> A[i];
double R=0, S=0;
for (i=0; i<N; i++)
if (A[i]<1)
{
R += A[i];
A[i] = 0;
}
else
{
S += A[i];
A[i] = 1;
}
cout << endl << "A: ";
for (i=0; i<N; i++)
cout << A[i] << " ";
cout << endl;
cout << "R = " << R << endl << "S = " << S << endl << "(1+R)/(1+S) = " << (1+R)/(1+S) << endl;
delete A;
return EXIT_SUCCESS;
}[/code]
Форма ответа