Non credo che riceverai risposte se non posti un codice indendato usando il tastino Tag Code [</>]
Se non usi il tag code alcune parti del codice vengono interpretate come corsivo: tutti gli
i tra parentesi quadre (corsivo) sono scomparsi...
Per ora ho solo indendato e rimesso l'indice, per far partire la compilazione, non ho controllato null'altro, conferma che ora il codice è uguale a quello che ci volevi mostrare.
Al riguardo dell'ultima parte qual è?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N_STUDENTI 2
#define N_MATERIE 2 //Italiano, Matematica
typedef struct s_materia {
char nome[15];
float v1q[6];
float v2q[6];
float media;
} materia;
typedef struct s_studente {
char cognome[20];
char nome[20];
materia m[N_MATERIE];
} studente;
void inserisci(int dim, studente ss[dim]){
int i,j,k;
char votoStr[10];
//questo ciclo mi permette di
//inserire i dati di ogni studente
for(i=0; i<dim; i++){
printf("Cognome: ");
gets(ss[i].cognome);
printf("Nome: ");
gets(ss[i].nome);
//inserisco i dati delle materie
for(j=0; j<N_MATERIE; j++){
printf("Nome materia: ");
gets(ss[i].m[j].nome);
for(k=0; k<6; k++){
printf("Voto 1° Q n° %d ", k+1);
gets(votoStr);
ss[i].m[j].v1q[k] = atof(votoStr);
}
for(k=0; k<6; k++){
printf("Voto 2° Q n° %d ", k+1);
gets(votoStr);
ss[i].m[j].v1q[k] = atof(votoStr);
}
}
}
}
void stampa(int dim, studente ss[dim]){
int i, j, k;
for(i=0; i<dim; i++){
printf("Nominativo: %s %s\n", ss[i].cognome, ss[i].nome);
for(j=0; j<N_MATERIE; j++){
printf("Materia: %s\n", ss[i].m[j].nome);
printf("Voti 1° Q\n");
for(k=0; k<6; k++){
printf("%f ", ss[i].m[j].v1q[k]);
}
printf("\nVoti 2° Q\n");
for(k=0; k<6; k++){
printf("%f ", ss[i].m[j].v2q[k]);
}
printf("\n");
}
printf("\n\n");
}
}
void calcolaMedie(int dim, studente ss[dim]){
int i,j,k;
float somma;
for(i=0; i<dim; i++){
for(j=0; j<N_MATERIE; j++){
somma = 0.0;
for(k=0; k<6; k++){
somma = somma + ss[i].m[j].v1q[k];
}
for(k=0; k<6; k++){
somma = somma + ss[i].m[j].v2q[k];
}
ss[i].m[j].media = somma/12;
}
}
}
int main(void){
studente ss[N_STUDENTI];
inserisci(N_STUDENTI, ss);
stampa(N_STUDENTI, ss);
calcolaMedie(N_STUDENTI, ss);
}