//Capitalizzazione Annua fatta con float #include <stdio.h> #include <stdlib.h> void main() { // risolviamo il problema dei tipi di dato // all'inizio float conto; float interesse; printf("\n********************************************"); printf("\n* Capitalizazzione del mio conto corrente\n"); printf("\n********************************************\n"); // OK usiamo float per le nostre variabili, ma "%d" converte sempre // bene i caratteri in numeri? NO Infatti %d sta' per DOUBLE PRECISION // ma per gli interi!!! // per i float si leggono con "%f". Naturalmente "f" sta' per float //Stampo le istruzioni per l'utente printf("\nValore del conto all'inizio dell'anno:\n"); scanf("%f",&conto); // Cosa fa scanf? // Prende i caratteri che mi passa l'utente prima del suo "enter" // li legge come un numero (la modalita' "%d") e li mette // all'indirizzo della variabile conto (modalita' &NomeVariabile) // INFATTI VOGLIO SAPERE DOVE SCRIVERE il numero dato dall'utente (&conto) // e non me faccio nulla di quanto vale il conto adesso (conto) // infatti scanf("%d", conto); sarebbe SBAGLIATO!!!! printf("\nInserire l'interesse della banca annuale\n"); scanf("%f",&interesse); // se lascio due buchi nella stringa di controllo " bla bla %d bla %d " // posso copiare per valore due variabili printf("conto: %f, interesse: %f \n", conto, interesse); // oppsss mi sono dimenticato che erano float e uso %d oer farli vedere printf("\n\n opsss metto 'd' al posto che 'f'.... conto: %d, interesse: %d \n", conto, interesse); printf("INFATTI LA CONVERISIONE NUMERO CARATTERE AVVIENE IN MODO SBAGLIATO!!\n\n"); //calcolo il risultato in capitalizzazzione annua conto = conto * (1 + interesse / 100 ); // adesso non ho problemi, sono tutti float!! //Stampo il risultato passando del "buco per interi" %d il VALORE della variabile conto printf("\nValore del conto all'FINE dell'anno (CAP. ANNUA): %f \n", conto ); // posso far vere solo le cifre prima e dopo la virgola che voglio io... // facciamo vedere 6cifre prima e due dopo per i cents // allora usa %f6.2 SEMPLICE !!! printf("\nValore del conto all'FINE dell'anno (CAP. ANNUA): %6.2f \n", conto ); printf("\n********************************************\n\n"); }