Другие языки программирования и технологии

Очень нужна помощь с программой на с++

Помогите написать программу на с++.
Даны три действительные числа A, B, C. Те из них, которые принадлежат интервалу [1,2;2,0]заменить нулем, а те, которые принадлежат интервалу [-2,3;-0,1]удвоить, остальные оставить без изменения.
#include <iostream>
#include <iomanip>
using namespace std;
using segment_t = pair<double, double>;
void nullify_value(double* box, const size_t n, const segment_t& seg) {
auto[left, right] = seg;
for (auto i = 0U; i < n; ++i)
if (box[i] >= left && box[i] <= right)
box[i] = 0.0;
}
void double_value(double* box, const size_t n, const segment_t& seg) {
auto[left, right] = seg;
for (auto i = 0U; i < n; ++i)
if (box[i] >= left && box[i] <= right)
box[i] *= 2.0;
}
int main() {
const auto n = 3U;
double box[3];
cout << "a, b, c > ";
for (auto& value : box) cin >> value;
const auto first = make_pair<double, double>(1.2, 2.0);
const auto second = make_pair<double, double>(-2.3, -0.1);
nullify_value(box, n, first);
double_value(box, n, second);
cout << "a, b, c =" << fixed << setprecision(1U);
for (const auto value : box) cout << ' ' << value;
cout.put('\n');
system("pause");
}
РЧ
Руслан Чепиков
77 919
Лучший ответ
#include "iostream"

using namespace std; int main()

{ double a[3]; int k; for(;;) { cout << "A B C > "; for (k=0; k < 3; k++) { cin >> a[k]; if (a[k] >= 1.2 && a[k] <= 2) a[k]=0; if (a[k] >= -2.3 && a[k] <= -0.1) a[k]*=2; } for (k=0; k < 3; k++) cout << a[k] << ' '; cout << '\n'; } }
C функцией:
#include "iostream"
using namespace std;
double f(double x) { if (x>=1.2 && x<=2) return 0; else if (x >=-2.3 && x<=-0.1) return 2*x; else return x; }
int main { double A,B,C; cout << "A B C > "; cin >> A >> B >> C; A=f(A); B=f(B); C=f(C); cout << A << ' ' << B << ' ' << C << '\n'; }
ЮО
Юрий Орда
28 648
Нурсултан Ермагамбетов а если без цикла? мы их еще не проходили