緣由絕對值比較,總是跑不過怎么辦-編程語言-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;}
}