Problema esercizio C

daenerys1
Salve ho un problema riguardante un esercizio in C. Quello che devo fare in tale esercizio, è costruirmi una matrice random di ordine 15x10 con valori random fra 1 e 10, tale matrice mi rappresenta una matrice dei giudizi quindi le righe, rappresentano 15 persone e le colonne rappresentano i giudici..In output devo avere i primi 3 classificati e quindi, la riga che ha somma maggiore e poi ha seguito.
Per quanto riguarda il primo classificato non ho avuto problemi, ho fatto una funzione che mi calcola la somma massima nelle righe e mi restituisce l'indice di tale riga però, per il secondo ed il terzo, non so proprio come procedere... :(

Risposte
vict85
A parte che puoi fare la stessa cosa ignorando la riga del primo e poi la prima e la seconda, basta che generalizzi un minimo il codice del primo per tenere 3 classificati al posto di solo il primo. Potresti anche ordinare le righe.

daenerys1
Mmm come posso fare per ignorarla?..Cioè il mi calcolo la somma massima delle righe e quindi poi da lì, mi ritrovo l'indice massimo, invece per stampare ad es. il secondo faccio la stessa cosa (ovvero calcolare le somme) ma con la condizione che gli indici delle righe variano ugualmente ma, escludendo l'indice massimo?

apatriarca
Un metodo semplice potrebbe essere quello di creare un array di strutture (che contengono l'indice o il valore). Inizializzi quindi questo array in modo da contenere le prime tre righe ordinate. A questo punto iteri su tutte le restanti righe inserendo l'indice e la somma in ordine all'interno di questo array. In questo modo avrai alla fine ottenuto un array che contiene le informazioni che ti interessano. Un'alternativa potrebbe anche essere creare una array di queste strutture grande quanto il numero di righe della tua matrice e quindi ordinare tale array in modo da avere i valori ordinati.

daenerys1
Io ho provato così: Mi sono fatta le somme di tutte le righe, e le ho messe in un vettore. Tale vettore poi l'ho ordinato in modo decrescente affinché i primi 3 valori, siano i 3 vincitori..Però, a me servono gli indici delle righe che hanno tale valore ..quindi non so se sto facendo un pasticcio o meno

apatriarca
Devi ordinare in contemporanea le somme e gli indici.

daenerys1
Ad ordinare gli elementi l'ho fatto, anche altre volte..ma ad ordinare gli indici, non so proprio come si fa..

apatriarca
Devi semplicemente fare sull'array degli indici gli stessi scambi che fai sull'array dei valori.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.