Matrice dentro struct

di il
2 risposte

Matrice dentro struct

Ciao a tutti! Sono una ragazza di 19 anni e ho un problema con un programma in C++ (Sono in quarta)
#include <iostream>
#include <stdlib.h>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <string>

using namespace std;

/*
Programma che dato un vettore di studenti che contenga:

-nome 

-cognome, 

-scritto
 
-orale  

(di pratica di ogni quadrimaestre)

Individua e ritorna il nome dello studente più bravo nelle diverse materie e
con media generale più alta

*/

struct scuola{
	
	string nome;
	string cognome;
	
	string materie[5]={"Italiano", "Matematica", "Storia", "Inglese", "Informatica"};
	
	float voti[3][5];
	
	
};

//Funzione "inserimento": Inseriamo: Nome, cognome e voto per ciascuna materia
void inserimento(scuola V[])
{
	//Variabili cicli
	int i,j;
	
	for(i=0;i<3;i++)
	{
		cout<<"Inserire il nome dello studente"<<endl;
		cin>>V[i].nome;
		
		cout<<"Inserire il cognome dello studente"<<endl;
		cin>>V[i].cognome;
		
		for(j=0;j<5;j++)
		{
			cout<<"Inserire il voto di"<<V[i].nome<<" in "<<V[j].materie<<endl;
			cin>>V[i][j].voti;
		}
	}
	
}







int main()
{
	//Variabili per lo switch
	int continua, scelta;
	
	
	scuola V[3];

	
	inserimento(V);

	
	//Scelta
	cout<<"Cosa vuoi fare?"<<endl;
	cout<<"1)Stampare i vari dati"<<endl;
	
	//Continua
	while(continua==1)
	{
	
	
	switch(scelta)
	{
		case 1:
			
		break;
		
		case 2:
			
		break;
		
	}
	
	cout<<"Vuoi continuare?"<<endl;
	cout<<"1: Si"<<endl<<"Altro: No"<<endl;
	
}
	
	
	
	
	system("PAUSE");
	return 0;
}

Allora, praticamente quello che vorrei fare è inserire nella matrice (dentro la funzione "inserimento") i voti e la materia annessa (le colonne indicano il voto del quadrimaestre e le colonne la materia in questione)

Ora, quando io cerco di inserire nella matrice "voti" il voto annesso, mi viene questo errore "[Error] no match for 'operator[]' (operand types are 'scuola' and 'int')"

Qualcuno può aiutarmi? Grazie in anticipo

2 Risposte

  • Re: Matrice dentro struct

    Nella struttura devi indicare
    float voti[5];
    e poi utilizzare
    V[i].voti[j]
    Questo per 3 quadrimestri e un solo alunno.

    Oppure
    float voti[3][5];
    e poi utilizzare
    V[n].voti[i][j]
    per n alunni e i quadrimestri j voti
  • Re: Matrice dentro struct

    Serve anche doppio for per popolare la matrice, uno per la materia e uno per il trimestre.
Devi accedere o registrarti per scrivere nel forum
2 risposte