Programma che funziona al primo ciclo ma non al secondo

di il
2 risposte

Programma che funziona al primo ciclo ma non al secondo

Buongiorno forum,
mi chiamo Alessandro e sto provando a fare il quarto anno da privatista, per dare poi a settembre l'esame in un istituto tecnico informatico. Purtroppo non sono più uno sbarbato, ho venticinque anni e ho lavorato per un po' di tempo come help desk e aiuto sistemista in una azienda italiana. Ora penso sia finalmente giunto il momento di prendere il diploma e quindi di rimboccarsi le maniche e studiare una materia che, a scuola, non ho mai amato particolarmente.

Venendo al problema in cui mi sono bloccato, trovo sia meglio incollarvi il codice che è piuttosto semplice e che ho in parte copiato dal libro che sto seguendo. (C e C++ le chiavi della programmazione di Carlo A. Mazzone) Quando dovrei inserire i dati del secondo cliente mi passa subito al cognome, sono sicuro si tratti di un problema molto stupido però non ne vengo a capo. Penso di aver capito che il problema sta nell'inserimento dei dati della struttura 'nascita', perché se provo senza funziona. Però perché allora da problemi solo al secondo ciclo? Se qualcuno volesse essere così gentile da aiutarmi gliene sarei grato.
#include <stdio.h>
#include <stdlib.h>

#define MAX_CLIENTI 2

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) 
{
	struct data
	{
		int giorno;
		int mese;
		int anno;
	};
	
	struct persona
	{
		char nome[20];
		char cognome[20];
		char indirizzo[30];
		struct data nascita;
	};
	
	struct persona cliente[MAX_CLIENTI];
	int i;
	
	printf("Inserisci i dati dei tuoi clienti \n\n");
	for(i=0; i<MAX_CLIENTI; i++)
	{
		printf("Cliente: %d\n", i+1);
		
		printf("Nome: ");
		gets(cliente[i].nome);
		
		printf("Cognome: ");
		gets(cliente[i].cognome);
		
		printf("Indirizzo: ");
		gets(cliente[i].indirizzo);
		
		printf("Giorno nascita: ");
		scanf("%d", &cliente[i].nascita.giorno);
		
		printf("Mese nascita: ");
		scanf("%d", &cliente[i].nascita.mese);
		
		printf("Anno nascita: ");
		scanf("%d", &cliente[i].nascita.anno);
		
		printf("\n");
	}
	
	printf("\nL'elenco dei tuoi clienti e'\n\n");
	for(i=0; i<MAX_CLIENTI; i++)
	{
		printf("\nNome: %s", cliente[i].nome);
		printf("\nCognome: %s", cliente[i].cognome);
		printf("\nIndizzo: %s", cliente[i].indirizzo);
		printf("\nNascita: %d %d %d", cliente[i].nascita.giorno, cliente[i].nascita.mese, 
		cliente[i].nascita.anno);
		printf("\n");
	}
	printf("\n");
	system("pause");
	return 0;
}


grazie mille

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte