【发布时间】:2018-01-16 02:10:49
【问题描述】:
我正在完成 Bjarne Stroustrup 的书“使用 C++ 的原理和实践”(第 3 章练习 6)中的练习。您被要求制作一个程序,该程序接受用户输入(3 个整数值)并按从小到大的顺序打印 3 个值。这是我的解决方案,
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Please enter 3 integers: ";
int num1, num2, num3;
while (cin >> num1 >> num2 >> num3) {
if (num1 < num2 && num2 < num3)
cout << num1 << ", " << num2 << ", " << num3 << endl;
if (num2 < num1 && num1 < num3)
cout << num2 << ", " << num1 << ", " << num3 << endl;
if (num3 < num1 && num1 < num2)
cout << num3 << ", " << num1 << ", " << num2 << endl;
if (num1 > num2 && num1 > num3 && num2 < num3)
cout << num2 << ", " << num3 << ", " << num1 << endl;
if (num1 > num2 && num1 > num3 && num2 > num3)
cout << num3 << ", " << num2 << ", " << num1 << endl;
if (num1 < num2 && num1 < num3 && num2 > num3)
cout << num1 << ", " << num3 << ", " << num2 << endl;
if (num1 == num2 && num1 < num3)
cout << num1 << ", " << num2 << ", " << num3 << endl;
if (num1 == num3 && num3 < num2)
cout << num1 << ", " << num3 << ", " << num2 << endl;
if (num1 == num2 && num1 > num3)
cout << num3 << ", " << num2 << ", " << num1 << endl;
if (num1 == num3 && num2 < num3)
cout << num2 << ", " << num3 << ", " << num1 << endl;
if (num3 == num2 && num1 < num3)
cout << num1 << ", " << num2 << ", " << num3 << endl;
if (num3 == num2 && num1 > num3)
cout << num3 << ", " << num2 << ", " << num1 << endl;
}
}
虽然这对我有用,但它看起来像很多代码,我真的很感激能更“简单”地解决这个问题。
【问题讨论】:
-
使用数组可能会有所帮助。对数组进行排序
-
您可以通过编写一个方法
bool isInOrder(x,y,z)来简化它 -
en.cppreference.com/w/cpp/algorithm/sort 接受 Ed 的阵列建议。
标签: c++ if-statement