Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
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


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
Apple Watch Series 11 GPS a 339€ su Amaz...
Come un MacBook, ma con la RTX 5070: MSI...
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: 05:00.


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