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

Перераспределить значения переменных (x,y,z)

Помогите пожалуйста.
Перераспределить значения переменных (x,y,z) так чтобы в (x) оказалось меньшие из этих значений в (у) средние (a,b,z) большое на С++
#include <iostream>
using namespace std;
int inp(const char* msg) {
cout << msg;
int n;
cin >> n;
return n;
}
void func(int& x, int& y, int& z) {
auto a = x;
auto b = y;
auto c = z;
x = (a < b) ? (a < c) ? a : c : (b < c) ? b : c;
z = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
y = a + b + c - x - z;
}
int main() {
auto x = inp("x: ");
auto y = inp("y: ");
auto z = inp("z: ");
func(x, y, z);
cout << "\nx: " << x << "\ny: " << y << "\nz: " << z << endl;
system("pause");
}
DD
Degtyarev Dmitry
95 183
Лучший ответ
Вот такой вариант, вдруг так проходят https://ideone.com/4m1La8
#include < iostream >
#include < vector >
#include < algorithm >

using namespace std;

// Перераспределить значения переменных
void Pr(double &x, double &y, double &z)
{
std::vector v;

v.push_back(x);
v.push_back(y);
v.push_back(z);

std::sort ( v.begin(), v.end() );

x = v[0];
y = v[1];
z = v[2];
}

int main()
{
double x=7, y=1, z=4;

cout << "x=" << x << endl;
cout << "y=" << y << endl;
cout << "z=" << z << endl;

Pr(x, y, z);

cout << "x=" << x << endl;
cout << "y=" << y << endl;
cout << "z=" << z << endl;

return 0;
}