• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema Crash programma classifica media-voti

giava2005

Nuovo utente
Autore del topic
27 Novembre 2017
5
10
Miglior risposta
0
Salve ragazzi!
Mi sono imbattuto in un programma per la classificazione della media-voti di alunni.
Il programma non crashava prima che inserissi la parte dedicata alle matrici.
Allego il codice del programma


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
L'errore che causa errore di segmentazione è effettivamente questo:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Questo perché numero_materie e n non hanno all'inizio il valore che poi andrai a dare da input, pertanto, la dichiarazione di suddette variabili (materie e voti) dovrebbero andare sotto cin>>numero_materie;. Comunque sia, il programma non fa quello che dovrebbe fare per vari motivi e tra l'altro non capisco il senso di quel bubble sort perché ordina solo le medie dimenticandosi del nome e cognome.
Sicuramente il problema ti dirà di usare le matrici, ma utilizzare le map in questo caso è meglio :|
 
No in realtà mi serve usare il bubble sort, poi avendo la struct una volta ordinata la media quando vado a stampare riporta anche nome e cognome.
Questo perché numero_materie e n non hanno all'inizio il valore che poi andrai a dare da input
Quindi per risolvere questo problema mi conviene dare delle costanti?
 
No in realtà mi serve usare il bubble sort, poi avendo la struct una volta ordinata la media quando vado a stampare riporta anche nome e cognome.

Quindi per risolvere questo problema mi conviene dare delle costanti?
No, ti ho detto che basta spostare la dichiarazione sotto cin>>numero_materie;:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Utilizzare delle costanti, in questo esercizio, non ha poi tanto senso dato che occuperesti memoria inutile in più. Al massimo vai di std::vector se proprio non vuoi stabilire una memoria fissa.

PS: Usare la cosiddetta allocazione dinamica della memoria quando fai queste cose è sempre meglio, anche se non indispensabile in questo esercizio, dati gli oramai compilatori.
 
  • Like
Reactions: Lex007