C/C++

Программирование, не могу понять ошибка моя или компилятора.

ПОМОГИТЕ ПОЖАЛУЙСТА НЕ МОГУ ПОНЯТЬ В ЧЕМ МОЯ ОШИБКА!!!
Зад. Сделать так чтобы программа печатала число которая 2-я по величине.

#include <iostream>

int main()
{
int a{}, b{}, c{};
std::cin >> a >> b >> c;
if (a < b)
{
if (a > c)
{
std::cout << a;
}
if (a < c)
{
if (b < c)
{
std::cout << b;
}
if (b > c)
{
std::cout << c;
}
}
}
else if (a > b)
{
if (a < c)
{
std::cout << a;
}
if (a > c)
{
if (b > c)
{
std::cout << b;
}
if (b < c)
{
std::cout << c;
}
}
}
}
если у вас только три числа, сделайте отдельную функцию, передайте туда массив, переберите его с помощью цикла с счётчиком, в теле цикла сделайте условие, в котором проверяете текущий элемент по заданному условию, в случае соответствия условиям, возвращайте этот элемент и выводите его
Андрей Симоненко
Андрей Симоненко
1 200
Лучший ответ
#include <iostream>
using namespace std;
int main() {
cout << ">>> ";
int a, b, c;
cin >> a >> b >> c;
const int min = (a < b) ? (a < c) ? a : c : (b < c) ? b : c;
const int max = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
const int sum = a + b + c;
const int mid = sum - max - min;
cout << "<<< " << mid << '\n';
system("pause > nul");
}
БK
Баха_ Kanibekov_88_
54 166
cin>>a[0]>>a[1]>>a[2];
sort(a,a+3);
cout<<a[1];
Павел Макаров
Павел Макаров
74 988
#include <iostream>

int main()
{
int n[3],first,second;
for(int x = 0; x < 3; x++)
{
std::cin >> n[x];
if(x == 0) second = first = n[0];
else if(first == second)
{
if(n[x] > first)
first = n[x];
else
second = n[x];
}
else
{
if(n[x] > first)
{
second = first;
first = n[x];
}
else if(n[x] > second)
second = n[x];
}
}
std::cout << second << std::endl;
return 0;
}