RISOLTO Esercizio Linguaggio C con Linux

Stato
Discussione chiusa ad ulteriori risposte.

fandango2031

Utente Attivo
803
261
C:
#include <stdio.h>



int main()
{
 
    char selezione;
    int somma_prelevata;
    int somma_depositata;
    int saldo = 2000;
 


 
    printf("Benvenuto allo sportello automatico:\n se si desidera prelevare premere a\n se si desidera depositare premere b\n");
    printf("Il tuo saldo disponibile : %d\n" , saldo);
do
{

scanf("%c" , &selezione);


if(selezione == 'a')
{
    printf("Inserire la somma da prelevare\n");
 
    scanf("%d" , &somma_prelevata);
 
    printf("Hai prelevato: %d" , somma_prelevata);
    
    printf("\nIl tuo nuovo Saldo e'': %d", saldo - somma_prelevata);
 
    selezione = 'x';
}
else if(selezione  == 'b')
{
    printf("Inserire la somma da depositare\n");
 
    scanf("%d" , &somma_depositata);
 
    printf("Hai depositato: %d " , somma_depositata);
    
    printf("\nIl tuo nuovo Saldo e'': %d", saldo + somma_depositata);
 
    selezione = 'x';
}
else
{
    int svuotoBuffer;
    while((svuotoBuffer=getchar())!='\n' && svuotoBuffer!=EOF);
 
    printf("Si prega di premere a per Prelievo o b per Deposito\n");
 
}
}while(selezione != 'x');
}


Grazie per la dritta @Andretti60, sono andato a spulciare qua e la una soluzione, alla fine ho trovato questa, che da quello che ho capito è anche l'unica in questo momento...ora funziona tutto e ho anche upgradato il progetto. ?
 

Andretti60

Utente Èlite
6,440
5,091
Bravo.
Piccolo appunto, le scelte ‘a’ e ‘b’ hanno poco senso, ti consiglio usare lettere con attinenza tipo ‘d’ (deposito) e ‘r’ (ritiro) inoltre dovresti anche aggiungere nel menu principale “premi x per uscire”.
 

fandango2031

Utente Attivo
803
261
Bravo.
Piccolo appunto, le scelte ‘a’ e ‘b’ hanno poco senso, ti consiglio usare lettere con attinenza tipo ‘d’ (deposito) e ‘r’ (ritiro) inoltre dovresti anche aggiungere nel menu principale “premi x per uscire”.
Si ci stavo giusto pensando prima al tasto x..e anche per le iniziali hai perfettamnete ragione...sopratutto si rende il codice più pulito...?
 

fandango2031

Utente Attivo
803
261
C:
#include <stdio.h>



int main()
{
 
    char selezione;
    int somma_prelevata;
    int somma_depositata;
    int saldo = 2000;
 


 
    printf("Benvenuto allo sportello automatico:\n se si desidera prelevare premere p\n se si desidera depositare premere d\n Premere x se si vuole uscire\n");
    printf("Il tuo saldo disponibile : %d\n" , saldo);
  
do
{

scanf("%c" , &selezione);


if(selezione == 'p')
{
    printf("Inserire la somma da prelevare\n");
 
    scanf("%d" , &somma_prelevata);
 
    printf("Hai prelevato: %d" , somma_prelevata);
  
    printf("\nIl tuo nuovo Saldo e'': %d", saldo - somma_prelevata);
 
    selezione = 'x';
}
else if(selezione  == 'd')
{
    printf("Inserire la somma da depositare\n");
 
    scanf("%d" , &somma_depositata);
 
    printf("Hai depositato: %d " , somma_depositata);
  
    printf("\nIl tuo nuovo Saldo e'': %d", saldo + somma_depositata);
 
    selezione = 'x';
}
else if(selezione != 'p' && selezione != 'd' && selezione != 'x')
{
    int svuotoBuffer;
    while((svuotoBuffer=getchar())!='\n' && svuotoBuffer!=EOF);
 
    printf("Si prega di premere p per Prelievo o d per Deposito\n");
 
}
}while(selezione != 'x');
}

Sistemato le lettere indicative e aggiunto la funzione uscita con modifica all'else, inserito al suo posto un altro if per ovviare alla restituzione del messaggio racchiuso in else, che ogni volta che si decideva di usare x per uscire veniva stampato...è una programmazione semplice, ma se è utile a qualcuno ben venga ?
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
@NicoAlte99 alla fine hai risolto il problema oppure no? ?
 

NicoAlte99

Utente Attivo
361
28

fandango2031

Utente Attivo
803
261
Codice:
Linguaggio C
Ciao si ho risolto scusate se non ho risposto più. Sono riuscito a risolvere grazie a quasi tutte le risposte che mi sono state date. Grazie a tutti per la disponibilità e mi scuso ancora per il ritardo della risposta. Spero di aver usato il CODE in maniera appropriata ma non sono sicuro.

Inviato da ELE-L29 tramite App ufficiale di Tom\'s Hardware Italia Forum
Manca il code...
 
  • Mi piace
Reazioni: Mursey

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed

NicoAlte99

Utente Attivo
361
28
Hai ragione ...comunque sono curioso anche io di capire come ha risolto...magari postaci anche il code...
Ho risolto mettendo le parentesi graffe nel modo corretto. Non riesco a mettere il CODE ho provato a metterlo nella risposta precedente ma evidentemente non l'ho fatto bene. Io come CODE ho messo linguaggio C... Bho scusate io non sto mai su tom's hardware per me è tutto nuovo. Comunque ringrazio ancora tutti per i consigli e la pazienza nei miei confronti buon proseguimento.

Inviato da ELE-L29 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili