Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2013, 11:39   #1
Alex_G
Junior Member
 
Iscritto dal: Nov 2012
Messaggi: 28
[C] PROBLEMA CON SWITCH

Ciao a tutti, sto provando a scrivere questo programma per calcolare la paga di diversi dipendenti utilizzando il comando switch; eseguendo il programma nonostante io immetta un carattere incluso nei casi dello switch, si verifica l'azione di default... cosa è sbagliato secondo voi ? Grazie in anticipo

int codice, paga_fissa=500, stipendio_ora=6, stipendio_ora_straordinario=9, paga_lavoratori_privvigione = 250, stipendio_fisso_articolo=5, articoli_prodotti;
float stipendio_dipendente, ore_lavorative, ore_bonus, paga_straordinari, vendite_lorde, bonus_dipendente_a_prov;

printf("Inserire la lettera corrispondente al dipendente del quale si vuole calcolare lo stipendio, seguendo la seguente tabella:\na: manager\nb: lavoratori a ore\nc:lavoratori a provvigione\nd:lavoratori a cottimo\nEOF: per terminare il programma;\n");
scanf("%d", &codice);

while (( codice = getchar() ) != EOF) {

switch ( codice ) {
case 'a':
stipendio_dipendente = paga_fissa;
printf("Lo stipendio ammonta ad una cifra di %.2f euro\n", stipendio_dipendente);
break;

case 'b':
printf("Inserire il numero di ore di lavoro effettuate:\n");
scanf("%f", &ore_lavorative);

if ( ore_lavorative<=40) {
stipendio_dipendente = ore_lavorative*stipendio_ora;
printf("Lo stipendio ammonta ad una cifra di %.2f euro\n", stipendio_dipendente);
}
else {
ore_bonus = ore_lavorative -40;
paga_straordinari = ore_bonus*stipendio_ora_straordinario;
stipendio_dipendente = 40*stipendio_ora + paga_straordinari;
printf("Lo stipendio ammonta ad una cifra di %.2f euro\n", stipendio_dipendente);
}


break;

case 'c':
printf("Inserire l'ammmontare in euro delle vendite lorde del dipendente:\n");
scanf("%f", &vendite_lorde);

bonus_dipendente_a_prov = (vendite_lorde/100)*5.7;
stipendio_dipendente = bonus_dipendente_a_prov + paga_lavoratori_privvigione;

printf("Lo stipendio ammonta ad una cifra di %.2f euro\n", stipendio_dipendente);
break;


case 'd':
printf("Inserire il numero di articoli prodotti:\n");
scanf("%d", &articoli_prodotti);

stipendio_dipendente = articoli_prodotti*stipendio_fisso_articolo;

printf("Lo stipendio ammonta ad una cifra di %.2f euro\n", stipendio_dipendente);
break;


default:
printf("E' stato inserito un numero di identificazione non corretto. Inserire nuovamente il numero per identificare il dipendente");
break;


}
}
return 0;
Alex_G è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2013, 19:32   #2
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Se è un carattere

scanf("%c", &codice);

e non

scanf("%d", &codice);
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2013, 00:55   #3
Alex_G
Junior Member
 
Iscritto dal: Nov 2012
Messaggi: 28
Quote:
Originariamente inviato da lorenzo001 Guarda i messaggi
Se è un carattere

scanf("%c", &codice);

e non

scanf("%d", &codice);
Ho provato ma continua a darmi il messaggio di default... S: non so che fare...
Alex_G è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2013, 08:48   #4
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Come mai hai inserito quelle due operazioni di lettura una dietro l'altra?

Codice:
scanf("%d", &codice);

while (( codice = getchar() ) != EOF) {

// corpo dello switch

}
L'errore è lì dentro, però prova a sbatterci un attimo la testa per capire dove.
Le operazioni di input/output da stream di varia natura sono sempre un pò ostiche all'inizio.

Ultima modifica di [Kendall] : 31-05-2013 alle 09:05.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Amazon, ecco i super sconti del weekend:...
Scovare un bug di sicurezza sui disposit...
Offerta Amazon su NordVPN: proteggi 10 d...
ECOVACS DEEBOT X8 PRO OMNI in offerta su...
Scope elettriche Tineco in offerta su Am...
Offerta Amazon sui robot EUREKA J15 Ultr...
Chrome disattiverà automaticament...
Tornano tutti e 4 i colori disponibili p...
Super sconto su iPhone 16: Amazon abbass...
Sconto pazzesco sulle Blink: videocamere...
Ring ancora in forte sconto, 35,99€ (-64...
Oltre 740.000 giocatori simultanei per B...
Tensione tra Stati Uniti e Cina: Trump a...
La popolazione protesta, Microsoft si ar...
Disney+ cambia: arriva Hulu, ma il servi...
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: 09:51.


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