2017-10-19 10 views
2

Je travaille donc sur ce projet où je dois rassembler 2 entiers d'un utilisateur 3 fois (boucle), et chaque fois que je dois imprimer les deux nombres entiers dans l'ordre croissant. La restriction est que vous ne pouvez avoir que deux instructions cout dans votre boucle (l'une demande leur entrée et l'autre sort l'ordre croissant).imprime plusieurs numéros dans l'ordre croissant en C++

Mon seul problème qui est, quand je pense à l'ordre croissant, je le ferais comme (qui a deux déclarations de comptage):

if (m<n) { 
cout << m << n << endl; 
if (m>n){ 
cout << n << m << endl; 

Jusqu'à présent, voici ce que j'ai:

#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 
} 

} 

Répondre

1

Alors, avez-vous envisagé de changer quelle variable contient le plus petit nombre? par exemple.

if(m > n){ 
    int temp = n; 
    n = m; 
    m = temp; 
} 

Ensuite, vous pouvez simplement utiliser une impression

cout << m << " " << n << endl; 
+0

Je ne suis pas sûr que je reçois ceci, mal le prendre ligne par ligne: Disons m = 8 et n = 2 si (8> 2) {// cela tombe dans l'instruction comme il est vrai int temp = n; // dans celui-ci, nous assignons la température entière à 2? n = m; // nous assignons maintenant m à 2? m = temp; // maintenant temp est 2? –

+1

@RostamMahabadi dans votre exemple, le résultat sera que m = 2 et n = 8, donc il imprimera dans l'ordre croissant. – hahahakebab

+0

il a finalement cliqué, apprécie l'aide! @hahahakebab –

1

C'est là où je suis en train coincé parce que je besoin de deux count [sic] déclarations d'organiser dans l'ordre croissant, comme indiqué ci-dessus

Vous avez marqué ce poste C++:

D'autres options à considérer:

algorithme use lib:

#include <algorithm> 

std::cout << std::min(m,n) << " " << std::max(m,n) << std::endl; 

ou utiliser l'opérateur conditionnel/ternaire dans votre Cout:

std::cout << ((m<n) ? m : n) << " " << ((n<m) ? m : n) << std::endl; 

Les références sont parfois amusant ... mais peut-être ce défi est trop banal.

// guess m < n 
int& first = m; 
int& second = n; 

if(!(m<n)) { first = n; second = m; } 

std::cout << first << " " << second << std::endl; 

Pointeurs peut faire la même chose:

// guess m < n 
int& first = &m; 
int& second = &n; 

if(!(m<n)) { first = &n; second = &m; } 

std::cout << *first << " " << *second << std::endl; 

ou vous pouvez utiliser

  • expressions lambda, ou

  • C++ fonctions, ou

  • méthodes de classe C++

Mais je pense que chacun d'entre eux serait directement comparable à l'une ou l'autre des premières alternatives.

+0

Peut-être que c'est l'application est pour un projet de recherche: "Quand 2 numéros sont demandés, quel pourcentage du temps les sujets entreront-ils dans l'ordre décroissant?" Oh, cela me rappelle: si le m et n sont égaux, que devrait sortir le programme? (ou est-ce une question piège?) –