Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-09-2005, 19:53   #1
Vash88
Senior Member
 
L'Avatar di Vash88
 
Iscritto dal: Sep 2003
Città: Regno Unito
Messaggi: 5726
Il float in C, ho qualche problema.

Sono alle mie prime esperienze con il comando float, ci ho perso un oretta a capire come fare a farlo funzionare in questo codice ma senza risultato.
Vorrei capire come posso fare in modo che le tutte le variabili tranne numeroconto possano essere inserite con 2 decimali. Ho provato vari metodi fallendo, chi mi da una mano? in questo esercizio dovrei creare un programma che il limite di credito su un conto.

Codice:
#include<stdio.h>
int main()
{
    int numeroconto, saldoiniziale, spese, crediti, limitecredito, nuovosaldo;
    
    while ( numeroconto != -1 ) {

    printf( "Inserire il numero di conto (-1 per terminare l'applicazione):" );
    scanf( "%d", &numeroconto );
    printf( "Inserire il saldo iniziale:" );
    scanf( "%d", &saldoiniziale );
    printf( "Inserire le spese:" );
    scanf( "%d", &spese );
    printf( "Inserire i crediti:" );
    scanf( "%d", &crediti );
    printf( "Inserire limite di credito:" );
    scanf( "%d", &limitecredito );

    nuovosaldo = saldoiniziale + spese - crediti;

        if ( nuovosaldo > limitecredito ) {
         printf( "Numero conto:%d", numeroconto );
        printf( "Limite di credito:%d", limitecredito );
        printf( "Nuovo saldo:%d", nuovosaldo ); 
        printf( "Limite di credito superato" );
        }
    }
    printf("Uscire y/n?:");
    if (getchar() != '\n');
    while (getchar() != 'y');
    return 0;
}
__________________
3090 FE & Ryzen 5700x - Legion 7 5800h 32gb - 3080 16gb
Vash88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2005, 23:07   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Vash88
Vorrei capire come posso fare in modo che le tutte le variabili tranne numeroconto possano essere inserite con 2 decimali.
Se usi solo scanf come funzione di input, mi sa che non puoi.
Almeno, questo è quello che ho capito da una rapida lettura dell'Appendice B del Kernighan&Ritchie, che dovrebbe essere in tuo possesso.

Il programma mi sembra filosoficamente corretto, nel senso che puoi mettere il tipo float alle variabili che vuoi, e poi devi solo sostituire lo specificatore "%d" con "%f" dove serve.
Ti segnalo solo qualche punto:
Quote:
Codice:
    int numeroconto, saldoiniziale, spese, crediti, limitecredito, nuovosaldo;
    
    while ( numeroconto != -1 ) {
Errore classico: all'avvio del programma, numeroconto non è inizializzata, e per quanto ne sai, potrebbe valere proprio -1.
Quote:
Codice:
    if (getchar() != '\n');
Non capisco il senso di dare un'istruzione che non fa niente se una certa condizione è vera, e non fa niente se la stessa condizione è falsa.
Quote:
Codice:
    while (getchar() != 'y');
Forse ti conviene introdurre una variabile ausiliaria c, di tipo int (attenzione: il tipo restituito da getchar è int, non char), e fare una cosa del tipo:
Codice:
while ((c=getchar()) != 'y' && c!='n')
    ;
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2005, 11:31   #3
Vash88
Senior Member
 
L'Avatar di Vash88
 
Iscritto dal: Sep 2003
Città: Regno Unito
Messaggi: 5726
Quote:
Originariamente inviato da Ziosilvio
Se usi solo scanf come funzione di input, mi sa che non puoi.
Almeno, questo è quello che ho capito da una rapida lettura dell'Appendice B del Kernighan&Ritchie, che dovrebbe essere in tuo possesso.
Putroppo ora sono in possesso solo del corso completo di programmazione C di Deitel&Deitel, la spiegazione di float che ho avuto per ora è stata un pò limitata secondo me. Comunque ora che ho corretto il programma posso inserire tranquillamente con scanf dei dati di tipo float. Andrò a cercare il libro che mi hai suggerito.

Quote:
Il programma mi sembra filosoficamente corretto, nel senso che puoi mettere il tipo float alle variabili che vuoi, e poi devi solo sostituire lo specificatore "%d" con "%f" dove serve.
Ti segnalo solo qualche punto:

Errore classico: all'avvio del programma, numeroconto non è inizializzata, e per quanto ne sai, potrebbe valere proprio -1.

Non capisco il senso di dare un'istruzione che non fa niente se una certa condizione è vera, e non fa niente se la stessa condizione è falsa.
Ho corretto tutti gli errori, per far terminare il programma con il dato -1 ho aggiunto un ramo di else, grazie per avermi segnalato i vari errori, ora il programma funziona. Alla prossima!

Codice:
#include<stdio.h>
int main()
{
    int numeroconto;
    float saldoiniziale, spese, crediti, limitecredito, nuovosaldo;
    
    printf( "Inserire il numero di conto ( -1 per terminare l'applicazione ):" );
    scanf( "%d", &numeroconto );
    while ( numeroconto != -1 ) {
    printf( "Inserire il saldo iniziale:" );
    scanf( "%f", &saldoiniziale );
    printf( "Inserire le spese:" );
    scanf( "%f", &spese );
    printf( "Inserire i crediti:" );
    scanf( "%f", &crediti );
    printf( "Inserire limite di credito:" );
    scanf( "%f", &limitecredito );
    nuovosaldo = saldoiniziale + spese - crediti;
        if ( nuovosaldo > limitecredito ) {
        printf( "Numero conto:%d\n", numeroconto );
        printf( "Limite di credito:%f\n", limitecredito );
        printf( "Nuovo saldo:%f\n", nuovosaldo ); 
        printf( "Limite di credito superato\n\n" );
        }
        else {
        printf( "Inserire il numero di conto ( -1 per terminare l'applicazione ):" );
        scanf( "%d", &numeroconto );
        }
    }
    printf("Uscire y/n?:");
    while (getchar() != 'y');
    return 0;
}
__________________
3090 FE & Ryzen 5700x - Legion 7 5800h 32gb - 3080 16gb
Vash88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Il semaforo bianco sta arrivando: cos'è,...
FRITZ!Repeater 2700 disponibile su Amazo...
Xiaomi TV A Pro: QLED 4K da 65'' con Goo...
Jack Dorsey vuole abolire i manager: 'L'...
Dreame Z10: scopa elettrica senza fili p...
Kingston IronKey Keypad 200C: chiavetta ...
Echo ed Echo Show in offerta: dagli spea...
PlayStation 5 Pro costa troppo? Quel pre...
TIM e Galaxy S26: arriva il trasferiment...
La risposta all'invasione degli agenti I...
Fire TV Stick: tutta la gamma Amazon in ...
ChatGPT arriva su CarPlay: OpenAI introd...
Un nuovo gioco RPG de Il Signore degli A...
Problemi di prestazioni per MacBook Pro ...
I limiti di utilizzo di Claude sono trop...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v