Ok, grazie. Dunque il mio è un errore concettuale perchè pensavo che avrebbe eseguito l'else dopo l'if ( anche se il primo if è vero ed il secondo è falso ) ma giustamente non c'è nessun codice dunque andavano inserite delle info in più ... oppure mettere altri if come ho fatto in questo caso.
Printscreen:
https://prnt.sc/fxqlc
https://prnt.sc/fxqln
https://prnt.sc/fxqlw
Codice:
// PROVE SUL CAMPO: 3.47 - CALCOLARE LA FREQUENZA CARDIACA NORMALE.
// Mentre fate esercizi fisici, potete usare un monitor della frequenza cardiaca, per vedere se la vostra frequenza cardiaca stia entro un intervallo di sicurezza indicato dai vostri istruttori e medici. Secondo l' America Heart Association ( AHA ), la formula per clcolare la vostra massima frequenza cardiaca in battiti al minuto è 220 meno la vostra età. La vostra frequenza cardiaca normale è un intervallo che è il 50 - 80 % della vostra massima frequenza cardiaca. [Nota: queste formule sono stime fornite dall'AHA. La massima e la normale frequenza cardiaca possono variare a seconda della salute, del benessere e del sesso dell'individuo. Consultate sempre un medico o un professionista qualificato per l'assistenza sanitaria prima di cominciare o modificare il programma di un esercizio.]
// Create un programma che legga la data di nascita dell'utente ed il giorno corrente ( mese, giorno ed anno ). Il vostro programma deve calcolare e mostrare l'età della persona, la sua massima frequenza cardiaca ed il suo intervallo di frequenza cardiaca normale.
// Scrittura del programma:
// - lettura dell'età dell'utente:
#include <stdio.h>
int main( void )
{
// Presentazione del programma
puts( "Questo è un programma per il calcolo della frequenza cardiaca massima e che indicherà l'intervallo della frequenza cardiaca normale da tenere sotto controllo in momenti di non attività fisica ( fonte AHA - American Heart Association ).\n" );
// Definizione della variabile Giorno Data Odierna
unsigned int giornoOdierno;
// Definizione della variabile Mese Data Odierna
unsigned int meseOdierno;
// Definizione della variabile Anno Data Odierna
unsigned int annoOdierno;
// Richesta inserimento della data odierna: giorno
printf( "%s", "Si prega di inserire la data odierna in forma numerica:\n\nGiorno:\t" );
// Acquisizione Giorno Data Odierna
scanf( "%u", &giornoOdierno );
// Richesta inserimento della data odierna: mese
printf( "%s", "Mese:\t" );
// Acquisizione Mese Data Odierna
scanf( "%u", &meseOdierno );
// Richesta inserimento della data odierna: anno
printf( "%s", "Anno:\t" );
// Acquisizione Anno Data Odierna
scanf( "%u", &annoOdierno );
// Definizione della variabile Giorno Data di Nascita
unsigned int giornoDiNascita;
// Definizione della variabile Mese Data di Nascita
unsigned int meseDiNascita;
// Definizione della variabile Anno Data di Nascita
unsigned int annoDiNascita;
// Richesta inserimento della data di nascita: giorno
printf( "%s", "\nSi prega di inserire la data di nascita del paziente in forma numerica:\n\nGiorno:\t" );
// Acquisizione Giorno Data di Nascita
scanf( "%u", &giornoDiNascita );
// Richesta inserimento della data di nascita: mese
printf( "%s", "Mese:\t" );
// Acquisizione Mese Data di Nascita
scanf( "%u", &meseDiNascita );
// Richesta inserimento della data di nascita: anno
printf( "%s", "Anno:\t" );
// Acquisizione Anno Data di Nascita
scanf( "%u", &annoDiNascita );
// Definizione delle variabili dei mesi
unsigned int gennaio = 1;
unsigned int febbraio = 2;
unsigned int marzo = 3;
unsigned int aprile = 4;
unsigned int maggio = 5;
unsigned int giugno = 6;
unsigned int luglio = 7;
unsigned int agosto = 8;
unsigned int settembre = 9;
unsigned int ottobre = 10;
unsigned int novembre = 11;
unsigned int dicembre = 12;
// Stampa del mese di nascita dell'utente in forma letteraria
if ( meseDiNascita == 1 ) {
printf( "\nL'utente è nato a Gennaio." );
}
if ( meseDiNascita == 2 ) {
printf( "\nIl paziente è nato a Febbraio." );
}
if ( meseDiNascita == 3 ) {
printf( "\nIl paziente è nato a Marzo." );
}
if ( meseDiNascita == 4 ) {
printf( "\nIl paziente è nato a Aprile." );
}
if ( meseDiNascita == 5 ) {
printf( "\nIl paziente è nato a Maggio." );
}
if ( meseDiNascita == 6 ) {
printf( "\nIl paziente è nato a Giugno." );
}
if ( meseDiNascita == 7 ) {
printf( "\nIl paziente è nato a Luglio." );
}
if ( meseDiNascita == 8 ) {
printf( "\nIl paziente è nato a Agosto." );
}
if ( meseDiNascita == 9 ) {
printf( "\nIl paziente è nato a Settembre." );
}
if ( meseDiNascita == 10 ) {
printf( "\nIl paziente è nato a Ottobre." );
}
if ( meseDiNascita == 11 ) {
printf( "\nIl paziente è nato a Novembre." );
}
if ( meseDiNascita == 12 ) {
printf( "\nIl paziente è nato a Dicembre." );
}
// Definizione variabile anni del paziente
int anniPaziente = annoOdierno - annoDiNascita;
// Definizione variabile frequenza massima
int frequenzaCardiaMax = 220 - anniPaziente;
// Definizione variabile 50 % della frequnza cardiaca massima per compleanno non compito
int frequenzaCardiaCinquPCnonCompiuto = ( frequenzaCardiaMax - 1 ) * 50 / 100;
// Definizione variabile 50 % della frequnza cardiaca massima per compleanno compito
int frequenzaCardiaCinquPCcompiuto = frequenzaCardiaMax * 50 / 100;
// Definizione variabile 80 % della frequnza cardiaca massima per compleanno non compito
int frequenzaCardiaOttanPCnonCompiuto = ( frequenzaCardiaMax - 1 ) * 80 / 100;
// Definizione variabile 80 % della frequnza cardiaca massima per compleanno compito
int frequenzaCardiaOttanPCcompiuto = frequenzaCardiaMax * 80 / 100;
// Verifica che il compleanno sia compiuto o meno e stampa della frequenza cardiaca massima
if ( meseDiNascita <= meseOdierno ) {
if ( giornoDiNascita <= giornoOdierno ) {
printf( "\nIl paziente ha %d anni.\n", anniPaziente );
frequenzaCardiaMax = 220 - anniPaziente;
printf( "\nLa frequenza cardiaca massima è %d battiti al minuto.", frequenzaCardiaMax );
printf( "\nE' consigliabile tenere la frequenza cardiaca normale nell'intervallo tra %d e %d battiti al minuto\n", frequenzaCardiaCinquPCcompiuto, frequenzaCardiaOttanPCcompiuto );
}
}
if ( meseDiNascita <= meseOdierno || meseDiNascita > meseOdierno ) {
if ( giornoDiNascita > giornoOdierno ) {
printf( "\nIl paziente ha %d anni.\n", anniPaziente -1 );
printf( "\nLa frequenza cardiaca massima è %d battiti al minuto.\n", frequenzaCardiaMax - 1 );
printf( "\nE' consigliabile tenere la frequenza cardiaca normale nell'intervallo tra %d e %d battiti al minuto.\n", frequenzaCardiaCinquPCnonCompiuto, frequenzaCardiaOttanPCnonCompiuto );
}
}
}
Grazie!...
p.s. la prossima volta cerco di farlo con lo switch (giustamente è comando di selezione multipla)... ;-D Ciao!!....
p.p.s. Ma lo switch va inserito per forza in un ciclo while o for o do...while??? o no? Ciao.