Salve,sto provando a scrivere un programma utilizzando lo struct,che chiede innanzitutto quanti studenti ci sono (lo struct e' un array contenente i dati dei vari studenti),poi per ogni studente chiede nome,cognome,voto di tre materie (per tutti gli studenti),e registra tutti questi dati nei vari elementi dello struct.
Poi quando l' utente digita un cognome deve cercare quello studente tra i vari elementi dello struct,e stampare la sua media.
Premetto che non mida nessun errore ne warning,pero' quando passo ad eseguirlo appena digito il primo voto l' esecuzione si blocca.
Ecco il codice:
codice:
#include<stdio.h>
#include<string.h>
typedef struct
{
char nome[31],cognome[31];
float inglese,fisica,matematica;
}studente;
main()
{
char l[31],s[31];
studente classe[100];
int m,i,n;
printf("Quanti studenti ci sono? ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Studente %d:\n",(i+1));
printf("Nome: ");
scanf("%s",classe[i].nome);
printf("Cognome: ");
scanf("%s",classe[i].cognome);
printf("Voto inglese? ");
scanf("%f",classe[i].inglese);
printf("Voto fisica? ");
scanf("%f",classe[i].fisica);
printf("Voto matematica? ");
scanf("%f",classe[i].matematica);
}
while(l!="esci")
{
printf("Digita cognome studente o esci per terminare: ");
gets(l);
for(i=0;i<n;i++)
{
if(strcmp(l,classe[i].cognome)==0)
puts(classe[i].nome);
puts(classe[i].cognome);
printf("%d",(classe[i].fisica+classe[i].inglese+classe[i].matematica)/3);
}
}
return 0;
}
Eppure sembra tutto corretto,perche' si blocca?