Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #1

    Riordinare i nomi di una classifica

    Salve a tutti sono nuovo nel forum, sono un elettrotecnico ma per curiositità ho voluto cimentarmi nel c++.
    Ho iniziato un semplice programma che mi permetta dopo aver inserito i nomi e i punteggi, di sviluppare una classifica dei partecipanti. I punteggi riesco a riordinarli ,ma non riesco a trovare una soluzione perchè i nomi restino accoppiati ai punteggi.
    Penso che il problema sia il fatto che per organizzare i nomi li ho dichiarati così:
    char PA[21][30];
    Prevedo massimo 21 partecipanti e massimo 30 caratteri per ogni nome
    Questo è il codice spero che mi possiate aiutare:

    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <float.h>
    #include <cmath>
    using namespace std;

    int numero_partecipanti,terminare;
    //DICHIARAZIONE DECIMALI
    float Pfinale[21];

    char PA[21][30];
    char NOME[21][30];

    void Stampa_classifica();
    int main ()
    {

    cout <<"Scrivere il numero di partecipanti:\n";
    cin >> numero_partecipanti ;

    int i;
    for (i=0; i<numero_partecipanti; i++)
    {
    cout <<"\nInserisci il nome del partecipante:\n";
    cin >> PA[i];
    cout <<"Inserisci il punteggio finale:\n";
    cin>> Pfinale[i];
    Stampa_classifica();
    }

    void Stampa_classifica()
    {
    unsigned int i, scambio;
    float X=0 ;
    do
    {
    scambio = 0;
    //CICLO CHE SCAMBIA PER IL NUMERO DI PARTECIPANTI
    for(i = 0; i < numero_partecipanti -1; i++)
    {
    if(Pfinale[i] < Pfinale[i + 1])
    {
    //SCAMBIO NOME
    int a,b,c;
    for(a=0 ; a!=30 ; a++)
    {
    NOME[i][a]=PA[i][a];
    }
    for(b=0 ; b!=30 ; b++)
    {
    PA[i][b]=NOME[i+1][b];
    }
    for(c=0 ; c!=30 ; c++)
    {
    PA[i+1][c]=NOME[i][c];
    }


    X = Pfinale[i];
    Pfinale[i] = Pfinale[i + 1];
    Pfinale[i + 1] = X;

    scambio = 1;
    }
    }
    } while(scambio == 1);

    for(i = 0; i < numero_partecipanti; i++)
    {
    cout << i+1 << " "<<"CLASSIFICATO";
    printf("\nNome: %s",PA[i]);
    printf ("\nFinale: %.2f\n", Pfinale[i]);
    }
    }
    Ultima modifica di cikc9807; 21-10-2017 a 15:21

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.