[c++] Problema nel selezionare il primo e il secondo numero

di il
3 risposte

[c++] Problema nel selezionare il primo e il secondo numero

Non ho capito il motivo per cui mi rileva il terzo numero piu grande ma non il secondo.
CODICE:
#include <iostream>
#include <string>

using namespace std;

int main()
{
    //Variabili
    string N[10],Nome, Nome1;
    int P[10], Max,Max1;
    //Caricamento ARRAY
    for (int i=0; i<10; i++)
    {
     cout<<"Nome del "  <<i<< " giocatore:\t";
     cin >> N[i];
     cout<<"Punteggio del "  <<i<< " giocatore:\t";
     cin >> P[i];
    }
    //Controllo di base (Blind)
    if (P[0]>P[1])
    {
        Max=P[0];
        Max1=P[1];
        Nome=N[0];
        Nome1=N[1];
    } else
    {
        Max=P[1];
        Max1=P[0];
        Nome=N[1];
        Nome1=N[0];
    }

    //Calcolo Primo & Secondo
    for (int i=0; i<10; i++)
    {
      if (P[i]>=Max)
      {
         Max=P[i];
         Nome=N[i];
      }else
      {
          if (P[i]>=Max1)
          {
          Max1=P[i];
          Nome1=N[i];
          }
      }
    }
    cout << "Il Primo e' "<< Nome << " con i suoi: " << Max <<" punti"<<endl;
    cout << "Il secondo e' "<< Nome1 << " con i suoi: " << Max1 <<" punti"<<endl;
    //BUG: Non riconosce il secondo valore ma il terzo
    return 0;
}

3 Risposte

  • Re: [c++] Problema nel selezionare il primo e il secondo numero

    Ancora non sono riuscito a capire perche.
  • Re: [c++] Problema nel selezionare il primo e il secondo numero

    Perché il metodo che usi non è completamente corretto. Pensaci bene ... Se trovi un valore più grande del massimo, sostituisci il massimo attuale ma quest'ultimo può essere più grande dell'attuale devono e tu lo perdi.
  • Re: [c++] Problema nel selezionare il primo e il secondo numero

    oregon ha scritto:


    Perché il metodo che usi non è completamente corretto. Pensaci bene ... Se trovi un valore più grande del massimo, sostituisci il massimo attuale ma quest'ultimo può essere più grande dell'attuale devono e tu lo perdi.
    Quindi il crontrollo prima del for e sbagliato.

    e se nel for dove sta if, se e minone di x assegna come Secondo se e maggiore di x assegna come primo e cosi via ?
Devi accedere o registrarti per scrivere nel forum
3 risposte