Domanda Risolto PROBLEMA C++

iSxND

Utente Bronze
3 Luglio 2018
30
11
4
30
Ultima modifica:
L'esercizio sarebbe il seguente:
crivere un programma che legge tre numeri reali e li stampa in ordine decrescente


vorrei sapere come mi consigliereste di agire, sapendo che:
-utilizzando if/else if=

C++:
#include <iostream>
using namespace std;

int main()
{
int A,B,C;//che legge tre numeri reali
cout << "Primo numero reale: ";
cin >> A;
cout << "Secondo numero reale: ";
cin >> B;
cout << "Terzo numero real: ";
//e li stampa in ordine decrescente A e B



if (A < B){ // PRESUPPOSTO (A < B)
    cout << A << "<" << B;
    cout << "Terzo numero reale: ";
    cin >> C;
if(C < A){
    cout << C << "<" << A << "<" << B;
        }
    else if(A < C){
        cout << A << "<" << B << "<" << C;
        }
}

else{
        cout << B << "<" << A ;
}
}


HO FATTO MILLE TEST CON MILLE CONDIZIONI STO IMPAZZENDO
 
Stiamo parlando di numeri reali, mentre qui hai usato numeri interi. Ipotizzando che puoi usare le STL essendo un esercizio in C++ io farei una cosa del tipo:

C++:
#include <iostream>
#include <algorithm>

int main()
{
    const int n = 3;
    double nums[n];
    int i;

    for (i = 0; i < n; i++)
    {
        std::cout << "Inserisci numero (" << (i + 1) << "): ";
        std::cin >> nums[i];
    }

    std::sort(nums, nums + n);

    for (i = 0; i < n; i++)
    {
        bool isLast = (i == n - 1);
        std::cout << nums[i] << (isLast ? "\n" : " < ");
    }

    return 0;
}

Output:
Codice:
Inserisci numero (1): 9.4
Inserisci numero (2): 2.3
Inserisci numero (3): 5.5
2.3 < 5.5 < 9.4
 
il problema che la richiesta è solo utilizzando "Impariamo ad utilizzare i costrutti di scelta condizionale – if-else – e di scelta multipla – switch"
quindi in questo canso deduco che la migliore soluzione sarebbe utilizzare lo switch
 
il problema che la richiesta è solo utilizzando "Impariamo ad utilizzare i costrutti di scelta condizionale – if-else – e di scelta multipla – switch"
quindi in questo canso deduco che la migliore soluzione sarebbe utilizzare lo switch
La prossima volta scrivi subito la consegna completa, che comunque mi sembra sbagliata essendoci un infinita' di modi di usare (ed insegnare) if in modo furbo, meno questo. Continuando sul tuo codice puoi modificarlo cambiando da int a double A, B e C, poi dall'if in poi sostituire tutto con tutte le possibili combinazioni:

C++:
    // Codice scritto prima: acquisizione di A, B, C
    
    if (A < B && B < C)
    {
        cout << A << " < " << B << " < " << C << endl;
    }
    // else if (...) ...

Ti anticipo che hai 6 possibili combinazioni che dovrai gestire. Con lo switch non ci fai niente in questo esercizio.
 
Ho risolto il tuo problema l'algoritmo dovrebbe uscire una cosa del genere:

C++:
#include<iostream>
using namespace std;


int main(){
    float A=1.2,B=3.3,C=2.23;
    
    if(A<B && A<C){
        if(B<C){
            cout<<A<<" "<<B<<" "<<C<<endl;
        }
        else{
            cout<<A<<" "<<C<<" "<<B<<endl;
        }
    }
    else if(B<A&&B<C){
        if(A<C){
            cout<<B<<" "<<A<<" "<<C<<endl;
        }
        else{
            cout<<B<<" "<<C<<" "<<A<<endl;
        }
    }
    //il più piccolo e' C
    else{
        if(A<B){
            cout<<C<<" "<<A<<" "<<B<<endl;
        }
        else{
            cout<<C<<" "<<B<<" "<<A<<endl;
        }
        
    }
    
    
    
    return 0;
}