PDA

View Full Version : [C] help non mi stampa il cognome


tonystrong
14-09-2007, 12:12
ciao a tutti... l'esercizio è inserire nome cognome e matricola.

richiedere un numero di matricola verificare se è presente nell'elenco.
nel caso fosse presente stampare tutti i dati dello studente.

ho provato con inserire 2 studenti e se chiedo informazioni del primo studente mi dà tutte le informazioni.
se chiedo informazioni del secondo studente non mi stampa il cognome.
sapete dirmi com mai?

se inserisco 3 studenti mi dà errore (ossia assegno a numStud il valore 3)

il listato

#include<stdio.h>
#define numStud 2
#define max 15

typedef char stringa[max];
typedef struct{
stringa nome;
stringa cognome;
int matricola;
}studente;
typedef enum{falso,vero}boolean;

main()
{
int i,matr;
boolean trovato;
studente stud[numStud];

for(i=1; i<=numStud; i++) //acquisizione dati
{
printf("Nome: ");
scanf("%s",&stud[i].nome);
fflush(stdin);
printf("Cognome: ");
scanf("%s",&stud[i].cognome);
fflush(stdin);
printf("Matricola: ");
scanf("%d",&stud[i].matricola);
fflush(stdin);
printf("\n");
}
printf("\n\n");

for(i=1; i<=numStud; i++) //verifica dei dati acquisiti
{printf("\n%s",stud[i].nome);
printf("\n%s",stud[i].cognome);
printf("\n%d",stud[i].matricola);
printf("\n");
}
printf("\n\n");

printf("inserisci matricola da cui ricevere informazioni: ");
scanf("%d",&matr);
fflush(stdin);

i=1;
trovato=falso;
while(trovato==falso && i<=numStud) //confronto matricola
{
if(matr==stud[i].matricola)
trovato=vero;
else
i++;
}

if (trovato==vero) //stampa informzioni della matricola
{printf("\n%s",stud[i].nome);
printf("\n%s",stud[i].cognome);
printf("\n%d",stud[i].matricola);
}
else
printf("La matricola non e' presente nell'elenco");

getchar();
}

:muro: C'è qualcuno che puoi onsigliarmi?

andbin
14-09-2007, 12:27
C'è qualcuno che puoi onsigliarmi?La cosa più elementare: gli indici degli array partono da 0

tonystrong
14-09-2007, 12:43
uhmm hai ragionisssimo.... ho inizializzato l'indice a zero, e il programma gira.. grazie