Funzione Candidato più intelligente ed il giudice più severo

di Anonimizzato29959 il
4 risposte
Salve a tutti. Ho problemi riguardante la visualizzazione del candidato più intelligente ed il giudice più severo. Qualcuno potrebbe aiutarmi?

/*In un concorso di intelligenza, N giudici esprimono il loro giudizio su K
candidati. Il giudizio è un valore numerico tra 0 e 5. Si scriva una funzione per
determinare il candidato più intelligente, ed il giudice più severo*/

#include <stdio.h>
#include <stdlib.h>
#define MAXN 10
#define MAXK 100

/*Definizione del prototipo*/
void candidato_giudice (int C,int G,int Voti[][MAXN]);

int main() {
    int N,K,i,j;
    int voti[MAXN][MAXK];
    
    printf("Quanti candidati ci sono? ");
    scanf("%d",&K);
    
    printf("Quanti giudici ci sono? ");
    scanf("%d",&N);
    
    for(i=0;i<K;i++) {
        printf("Immettere i giudizi per il candidato %d\n",i+1);
        for(j=0;j<N;j++) {
            printf("Giudice %d, Cosa pensi del candidato %d? ",j+1,i+1);
            scanf("%d", &voti[i][j]);
        }
    }
    
    printf("Visualizzare il candidato più intelligente ed il giudice più severo\n");
    void candidato_giudice(K,N,voti[MAXK][MAXN]);

    return 0;
}

void candidato_giudice (int C,int G,int Voti[][MAXN]){
    int TOTC[MAXK]; /*somma dei voti per ogni candidato*/
    int TOTG[MAXN]; /*somma dei voti per ogni giudice*/
    int i,j;
    int min,max,posmin,posmax;
    
    for(i=0;i<C;i++) TOTC[i]=0;
    for(j=0;j<G;j++) TOTG[j]=0;
    
    for(i=0;i<C;i++) {
        for(j=0;j<G;j++) {
            TOTC[i]=TOTC[i]+Voti[i][j];
            TOTG[j]=TOTG[j]+Voti[i][j];
        }
    }
    
    max=TOTC[0];
    posmax=0;
    
    for(i=1;i<C;i++) {
        if(TOTC[i]>max) {
            max=TOTC[i];
            posmax=i;
        }
    }
    
    printf("Il vincitore e' il candidato numero %d\n",posmax+1);
    
    min=TOTG[0];
    posmin=0;
    
    for(i=1;i<G;i++) {
        if(TOTC[i]>max) {
            min=TOTG[i];
            posmin=i;
        }
    }
    
    printf("Il giudice piu' severo e' il numero %d\n",posmin+1);

}

4 Risposte

  • Cominciamo col definire cosa si intende con "più intelligente" e "più severo"
  • Il candidato ad aver ricevuto un un elevato punteggio rispetto agli altri mentre per il giudice ad aver assegnato il minor punteggio ad ogni candidato
  • Banale

    Due cicli e te la cavi
  • Non hai detto cosa/dove non ti funziona..
    Comunque Voti[][] non ti serve. Man mano che chiedi i voti li metti direttamente in TotC[] e TotG[]
    Questi due vettori ti consiglio di metterli a zero prima di usarli per sommarci man mano i voti.
    
    for (g=0;g<qntGiud;g++)
        {
            for (c=0;c<qntCand;c++)
            {
                printf("\n Inserire il voto del giudice %d per il candidato %d: ",g+1,c+1);
                scanf("%d",&votoInserito);
                
                VotoCand[c] = VotoCand[c] + votoInserito;
                VotoGiud[g] = VotoGiud[g] + votoInserito;
                
                if (VotoCand[c]>VotoMaxC)
                {
                    VotoMaxC=VotoCand[c];
                    indCandMax=c;
                }    
            }
            if (VotoGiud[g]<VotoMinG)
            {
                VotoMinG=VotoGiud[g];
                indGiudMin=g;
            }    
        }    
        printf("\n Il candidato migliore è il n. %d",indCandMax+1);
        printf("\n Il giudice più severo è il n. %d",indGiudMin+1);
Devi accedere o registrarti per scrivere nel forum
4 risposte