Non riesco a risolvere questo esercizio.

Marco241
Tratto da "Corso Completo di programmazione" Apogeo


Sviluppate un programma C,che determini se il cliente di un grande magazzino abbia superato il limite di credito sul suo conto.Per ogni cliente saranno disponibili i seguenti dati:

1)Il numero di conto.

2)Il saldo all'inizio del mese.

3)Il totale di tutti gli articoli che il cliente ha messo in conto ,durante il mese corrente.

4)Il totale di tutti i crediti applicati al conto di questo cliente,durante il mese corrente.

5)Il limite di credito concesso.

Il programma dovrà prendere in imput tutti questi dati ,calcolare il nuovo saldo(=saldo iniziale + articoli messi in conto - crediti) e determinare se il nuovo saldosuperi il limite di credito del cliente.Per quei clienti che avranno superato il limite di credito ,il programma dovrà visualizzare il loro numero di conto ,il limite di credito , il nuovo saldo e il messaggio "Credit Limit exceeded".

Allora ecco il mio testo:


#include

main()

{ int accountnumber;
float beginningbalance,totalcharges,totalcredits,creditlimit,Balance;



printf("Enter account number (-1 to end):");
scanf("%d", &accountnumber);



while(accountnumber!= -1){

printf("Enter beginning balance: \n");
scanf("%.2f",&beginningbalance);
printf("Enter total charges: \n");
scanf("%.2f", &totalcharges);
printf("Enter total credits: \n");
scanf("%.2f", &totalcredits);
printf("Enter credit limit: \n);
scanf("%.2f",&creditlimit);

Balance=beginningbalance + totalcharges - totalcredits;}

if (Balance > creditlimit){

printf("Account:%.2f\n" ,accountnumber);

printf("Credit limit:%.2f\n" ,creditlimit);

printf("Balance:%.2f\n", Balance);

printf("Credit Limit Exceeded\n");}

else printf(" \n");

}

Dove sbaglio? Mi da errore[code][/code]

Risposte
eugenio.amitrano
il while è un ciclo infinito se il numero di conto è diverso da -1.
Ma non credo che il compilatore si fermi per questo.

Senza osservare se ci sono errori algoritmici, non saltano all'occhio errori di sintassi.
Potresti postare il messaggio di errore?

Ciaoooo...

Marco241
1)Unterminated string or char const.

printf("Enter credit limit: \n);


2)no type specified.Defaulting to int.

main()


3)type error in argument 1 to 'printf';found 'int' expected 'pointer to char'

scanf("%.2f",&creditlimit);


4)syntax error;found ;'expecting')'

scanf("%.2f",&creditlimit);



Questi sono tutti gli errori...

5)printf expects a char pointer as first arg,got in

scanf("%.2f",&creditlimit);



6)printf argument mismatch for format f.Expected double got int

printf("Account:%.2f\n" ,accountnumber);

itpareid
mi pare che manchino qua e là i caratteri di fine stringa ", in più ad un %f assegni una variabile int.

Marco241
A me sembra tutto a posto.


#include <stdio.h>

main()

{ int accountnumber;
float beginningbalance,totalcharges,totalcredits,creditlimit,Balance;



printf("Enter account number (-1 to end):");
scanf("%d", &accountnumber);



while(accountnumber!= -1){

printf("Enter beginning balance: \n");
scanf("%.2f",&beginningbalance);
printf("Enter total charges: \n");
scanf("%.2f", &totalcharges);
printf("Enter total credits: \n");
scanf("%.2f", &totalcredits);
printf("Enter credit limit: \n);
scanf("%.2f",&creditlimit);

Balance=beginningbalance + totalcharges - totalcredits;}

if (Balance > creditlimit){

printf("Account:%.2f\n" ,accountnumber);

printf("Credit limit:%.2f\n" ,creditlimit);

printf("Balance:%.2f\n", Balance);

printf("Credit Limit Exceeded\n");}

else printf(" \n");

} 

itpareid
"Marco24":
A me sembra tutto a posto.
printf("Enter credit limit: \n);
 

qua per esempio manca un "

Marco241
purtroppo funziona solo while. Non so perchè mi ripete il ciclo

itpareid
perché la richiesta del numero di conto è fuori dal ciclo...prova a cambiare costrutto (per esempio usa un do-while) e mettere la richiesta del numero di conto dentro al ciclo...
EDIT: come ti aveva già detto eugenio.amitrano nella prima risposta

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.