C/C++
Програмирование на C/C++ на основе блоксхемы
Даны числа A,B,C,D. Если A>B>C>D, то каждое число заменить полусуммой его со своими соседями, если A<B<C<D, то числа оставить без изменения, в противном случае все числа увеличить на значение равное наименьшему из A,B,C,D. Вывести все числа (блоксхему естественно делать не надо, просто написать небольшой код. Первая лабораторная, только начали изучать C, поэтому определения слов в коде не должны превышать уровень знаний студента)
«полусуммой его» – это вообще как. Например, для ряда: 7.4 3.8 5.6 1.2
#include <iostream>
using namespace std;
double compare(double a, double b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
}
double min(double a, double b) {
return a < b? a : b;
}
void replace(double& a, double& b, double& c, double& d) {
double ta = b;
double tb = (a + c) / 2.0;
double tc = (b + d) / 2.0;
double td = c;
a = ta;
b = tb;
c = tc;
d = td;
}
int main() {
int n = 0;
double a;
cin >> a;
double m = a;
double b;
cin >> b;
m = min(m, b);
n += compare(a, b);
double c;
cin >> c;
m = min(m, c);
n += compare(b, c);
double d;
cin >> d;
m = min(m, d);
n += compare(c, d);
switch (n) {
case -3:
break;
case 3:
replace(a, b, c, d);
break;
default:
a += m;
b += m;
c += m;
d += m;
}
cout << a << ' ' << b << ' ' << c << ' ' << d << '\n';
}
#include <iostream>
using namespace std;
double compare(double a, double b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
}
double min(double a, double b) {
return a < b? a : b;
}
void replace(double& a, double& b, double& c, double& d) {
double ta = b;
double tb = (a + c) / 2.0;
double tc = (b + d) / 2.0;
double td = c;
a = ta;
b = tb;
c = tc;
d = td;
}
int main() {
int n = 0;
double a;
cin >> a;
double m = a;
double b;
cin >> b;
m = min(m, b);
n += compare(a, b);
double c;
cin >> c;
m = min(m, c);
n += compare(b, c);
double d;
cin >> d;
m = min(m, d);
n += compare(c, d);
switch (n) {
case -3:
break;
case 3:
replace(a, b, c, d);
break;
default:
a += m;
b += m;
c += m;
d += m;
}
cout << a << ' ' << b << ' ' << c << ' ' << d << '\n';
}
Евгений Коломойцев
Код абсолютно верный и работает, Вы не могли бы написать этот код только на библиотеке <stdio.h>
Похожие вопросы
- Програмирование на C
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Задание на C/C++
- Помогите в C/C++. Пример в столбик
- Нормальный ли язык программирования C для новичка ,что бы в дальнейшем перейти на C# ,C++,И в чем различие между ними?
- Программирование на языках C/C++
- Программа на C/C++
- Написать программу на C/C++. Найти количество отрицательных элементов под побочной диагональю.
- C/C++ Как устроена память, выделенная для структуры с указателем *next?
- C#; C++; python изучение языков программирования