缘由绝对值比较,总是跑不过怎么办-编程语言-CSDN问答
template <class 形参>
inline void 算交换(形参& a, 形参& b){ 形参 ab = a - b; a -= ab; b += ab; }
template <class 形参>
void 三个升序(形参& a, 形参& b, 形参& c)
{if (a > c)算交换(a, c);if (a > b)算交换(a, b);if (b > c)算交换(b, c);
}
void 三个数绝对值排序()
{//缘由int a = 0, b = 0, c = 0;cin >> a >> b >> c;if (a<0 && b<0 && c<0 || a>0 && b>0 && c>0){}else if (a<0 && b>0 && c>0){}else if (a>0 && b<0 && c>0){}else if (a>0 && b>0 && c<0){}else if (a<0 && b<0 && c>0){}else if (a>0 && b<0 && c<0){}
}
void 三个数绝对值排序()
{//缘由int a = 0, b = 0, c = 0, aa = 0, bb = 0, cc = 0;cin >> a >> b >> c;//1 -1 1;1 1 -1;1 3 -3;-3 1 3;-3 3 1;if (a<0 && b<0 && c<0 || a>0 && b>0 && c>0){if (a<0)三个升序(c, b, a);else 三个升序(a, b, c);cout << a << " " << b << " " << c;}else{aa = (a < 0 ? -a : a);bb = (b < 0 ? -b : b);cc = (c < 0 ? -c : c);三个升序(aa, bb, cc);if (aa == cc)if (c < 0)aa = c, c = -c;if (aa == bb)if (b < 0)aa = b, b = -b;if (bb == cc){if (c < 0)bb = c;if (bb == -a)bb = a;}cout << aa << " " << bb << " " << cc;}
}