Visualizzazione di stringhe

di il
2 risposte

Visualizzazione di stringhe

Buon giorno a tutti, io ho questo esercizio, ma non ne vengo alla soluzione. dopo svariati tentativi ne è uscito questo. Acquisisco su due vettori paralleli il nome dei candidati e il loro punteggio. Poi inserisco da tastiera un valore x e vado a verificare tutti i punteggi inseriti e se sono maggiori o uguali copio in un vettore (vA) l'indice del vettore dei nomi, solo che da qui iniziano i problemi:
1 - quando visualizzo vA non mi fa vedere gli indici che hanno preso un valore superiore o uguale a quello inserito.
2 - mi sapreste aiutare per la visualizzazione finale dei nominativi?
/*Problema: Realizzare un programma per la gestione della selezione per titoli 
            di candidati ammessi in un concorso. Al concorso potranno partecipare 
            solo chi ha un punteggio >= ad un valore x di riferimento.
            Acquisire il nominativo degli N (N<=100) candidati ed i relativi 
            punteggi; considerato che ogni candidato è identificato univocamente 
            da un codice (0,1,2...), copiare in un vettore ammessi il codice di 
            coloro che hanno superato la slezione. Visualizzare i nominativi.*/
#include <stdio.h>
#include <conio.h>
#define N 100
int main(void)
{
    int i=0,quanti=0,k=0;
    int v2[N],vA[N],x;
    char v1[N][30];
    do           
    {
        printf("Quanti sono i candidati al concorso? ");
        scanf("%d",&quanti);
        if ((quanti<0)||(quanti>N))
            printf("ERRORE!! Devi inserire almeno un candidato e massimo 100...\n");
    } while ((quanti<0)||(quanti>N));
    for(i=0;i<quanti;i++)
    {
        printf("Inserisci il %d nome del candidato: ",i+1);
        scanf("%s",&v1[i]);
        printf("Inserisci il punteggio del candidato %s: ",v1[i]);
        scanf("%d",&v2[i]);  
    }
    for (i=0;i<quanti;i++)
    {
        printf("\nPartecipante numero:%d  nome:%s punteggio:%d",i+1,v1[i],v2[i]);
    }   
    printf("\nInserire un valore x di riferimento per il punteggio minimo: ");
    scanf("%d",&x);
    printf("Gli ammessi al concorso sono: \n");
    for(i=0;i<quanti;i++)
    {
        if(v2[i]>=x)
        {
          vA[k]=i;
          k++;
        }
    }
    for(i=0;i<k;i++)
    {
        printf("%d",vA[i]);
    }
getch ();
return 0;
}

2 Risposte

  • Re: Visualizzazione di stringhe

    E' sufficiente (con la i!!!!!) cambiare la parte relativa alla stampa dei risultati con
    
    for(i=0;i<k;i++){
    		printf("Candidato numero %d: %s con voto %d\n", (vA[i])+1, v1[(vA[i])], v2[(vA[i])] );
                     }
    
    
    Sembra un po' un pastrugno però funziona. Anche io sono agli inizi e mi ha fatto piacere aiutarti.
    Ps il numero del candidato è incrementato di 1 cosicchè il primo risulti come 1 e non 0.
  • Re: Visualizzazione di stringhe

    Grazie
    pastrocchiato o meno ... funziona ed è quello che conta !!
Devi accedere o registrarti per scrivere nel forum
2 risposte