所以我在这个项目上工作,我必须从用户那里收集2次整数(循环),每次我必须按升序打印两个整数。限制是你的循环中只能有两个cout语句(一个是要求输入,另一个是输出升序)。
我唯一的问题是,当我考虑升序时,我会这样做(它有两个计数语句):
if (m<n) {
cout << m << n << endl;
if (m>n){
cout << n << m << endl;
到目前为止,这就是我所拥有的:
#include <iostream>
using namespace std;
int main(int,char**) {
int n, m, z;
for (n=0;n<3;n++){
cout << "Give me two numbers: ";
cin >> m;
cin >> z;
//if (m>z);
//cout << m << z << "sorted is: " << m << z << endl;
// This is where I'm getting stuck because I need two count statements to organize in ascending order as shown above
}
}
答案 0 :(得分:1)
那么您是否考虑过更改哪个变量包含较低的数字? e.g。
cout << m << " " << n << endl;
然后你可以使用一个印刷品
environment.production
答案 1 :(得分:1)
这就是我被困的地方,因为我需要两次计算[原文如此] 如上所示按升序组织的陈述
您已将此帖标记为C ++:
需要考虑的其他选项:
使用算法lib:
#include <algorithm>
std::cout << std::min(m,n) << " " << std::max(m,n) << std::endl;
或在你的cout中使用condition / ternary运算符:
std::cout << ((m<n) ? m : n) << " " << ((n<m) ? m : n) << std::endl;
参考文献有时很有趣......但也许这个挑战太微不足道了。
// guess m < n
int& first = m;
int& second = n;
if(!(m<n)) { first = n; second = m; }
std::cout << first << " " << second << std::endl;
指针也可以这样做:
// guess m < n
int& first = &m;
int& second = &n;
if(!(m<n)) { first = &n; second = &m; }
std::cout << *first << " " << *second << std::endl;
或者您可以使用
lambda表达式,或
c ++函数,或
c ++类方法
但我认为其中每一项都可以直接与第一种替代方案相媲美。