View Single Post
Old 26-03-2003, 11:00   #1
vegeta83ssj
Senior Member
 
L'Avatar di vegeta83ssj
 
Iscritto dal: Feb 2002
Cittā: Modena
Messaggi: 590
Aiuto su programmino in C (lunghetto)

Intanto scusate la lunghezza del post ma rischio l'esaurimento nervoso!
Dovrei fare il seguente programma in C:
Acquisire da standard input N elementi (con N costante pari a 5) di tipo ContoCorrente:
typedef struct {
char CC[5];
char Descrizione[20];
int Valore; } ContoCorrente;
e memorizzarli nel file binario Conto.dat .
Visualizzare, per ogni valore di CC il saldo del conto, ottenuto come somma algebrica delle operazioni eseguite sul conto (campo Valore della struttura ContoCorrente).
Esempio:
CC Descrizione Valore
A1 Op. 1 -200
A2 Op. 2 190
A3 Op. 3 50
A2 Op. 4 -40
A1 Op. 5 220
Il Risultato Sarā:
CC Saldo
A1 20
A2 150
A3 50

Fino all'acquisizione e memorizzazione non ci sono problemi, ma per la stampa del saldo non ci salto fuori! Ho scritto questo ciclo:
/*Stampa saldo*/
for(i=0;i<N;i++){
fread(&conto,sizeof(ContoCorrente),1,conti);
printf("\nConto: %s",conto.CC);
strcpy(nome,conto.CC);
movimenti=conto.Valore;
while(fread(&conto,sizeof(ContoCorrente),1,conti)>0)
if(strcmp(nome,conto.CC)==0) movimenti=movimenti+conto.Valore;
printf("Valore: %d",movimenti);
fseek(conti,sizeof(ContoCorrente)*i,SEEK_SET);
}

ma non si accorge se di un conto corrente ha giā stampato il saldo e compe output ottengo questo:
Conto: A1 Valore: 20
Conto: A1 Valore: 20
Conto: A2 Valore: 150
Conto: A3 Valore: 50
Conto: A2 Valore: -40

Dov'č l'inghippo ? Un 1.000.000 di grazie a chi mi darā una mano!

Fox
vegeta83ssj č offline   Rispondi citando il messaggio o parte di esso