Problema su programmino semplice

di il
1 risposte

Problema su programmino semplice

Non mi funziona un programmino di estrema facilità e non riesco a caparcitarmene, il codice è questo:
#include <iostream>

using namespace std;

int main()
{
int num1, num2;

cout << "Inserire due numeri:"<< endl;
cin >> num1, num2;

if (num1 < num2)
cout << "Il numero piu' piccolo e' " << num1
<< ", il numero piu' grande e' " << num2;

else
cout << "Il numero piu' piccolo e' " << num2
<< ", il numero piu' grande e' " << num1;

fflush(stdin);
getchar();
return 0;
}


GRAZIE

1 Risposte

  • Re: Problema su programmino semplice

    Allora procediamo ad elencare gli errori:
    1. Il primo errore l'hai fatto quando non hai messo i code tags per facilitare il lavoro a chi ti vuole aiutare e da questo deduco anche il secondo errore.
    2. Non hai letto il regolamento.
    3. Sei in C++ e non in C. Questo lo spiegherò alla fine
    4. Non hai inizializzato le variabili num1 e num2. Questo fa si che il compilatore ti indichi due warning che probabilmente non ci hai fatto neanche caso perché hai il livello degli warning quasi disattivato.
    5. Guarda questa riga
    
    cin >> num1, num2;
    
    L'acquisizione degli variabili in cascata viene fatto col'operatore >> e non con la virgola
    6.
    
    fflush(stdin);
    
    Oltre ad essere una funzione puramente del C è anche malamente usata.Il lavoro di fflush su stdin non è definito dallo standard e non fa ciò che credi.In realtà non fa un tubo in quanto non puoi svuotare il buffer del stdin col fflush. Ma siccome siamo in C++ basterebbe un cin.ignore(100,'\n'). Il numero 100 è puramente casuale. sarebbe meglio mettere il limite massimo del buffer ma non complichiamo le cose. La funzione scarta 100 caratteri oppure finchè non arriva al '\n, qualuncue dei due arrivi per prima.
    7. Infine
    
    getchar();
    
    é una funzione C non C++, non fa niente in questo contesto ed è rimpiazzabile con cin.get().
    8.
    Hai dimenticato di verificare quando i due numeri sono uguali. Il tuo programma risponde in modo errato.


    Quindi come vedi anche in un programma molto semplice si possono fare moltissimi errori concettuali e non.
Devi accedere o registrarti per scrivere nel forum
1 risposte