Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define STOP 0
  5. #define LS 12
  6. #define PALCOL 0.79
  7. #define PARTI 100
  8. #define M 'M'
  9. #define SMALTI 0.125
  10. #define LIM 0.5
  11. #define MINORE 60
  12.  
  13. float kg;
  14. float coeff;
  15.  
  16. float menu();
  17. float acquisizione();
  18. float alcolemia(float, float);
  19. void responso(float);
  20.  
  21. int main(int argc, char *argv[])
  22. {
  23. float alcol;
  24.  
  25. coeff=menu();
  26. alcol=acquisizione(kg, coeff);
  27. responso(alcol);
  28.  
  29. return 0;
  30. }
  31.  
  32. float menu()
  33. {
  34. char sesso, pancia[LS+1];
  35. int next;
  36.  
  37. printf("Inserire il proprio peso corporeo in kg:\n");
  38. scanf("%f", &kg);
  39. printf("Indicare se si era a 'pancia piena' o 'pancia vuota'\n");
  40. gets(pancia);
  41. if(gets(pancia)){
  42. printf("Inserire il proprio sesso (M/F)\n");
  43. scanf("%c", &sesso);
  44. }
  45.  
  46. if(sesso==M){
  47. if(!strcmp(pancia, "pancia piena"))
  48. return 1.2;
  49. else
  50. return 0.7;
  51. }else
  52. if(!strcmp(pancia, "pancia piena"))
  53. return 0.9;
  54.  
  55. return 0.5;
  56. }
  57.  
  58. float acquisizione()
  59. {
  60. float gradi, ml, alcol;
  61.  
  62. do{
  63. printf("Inserire la quantità (in ml) di bevanda ingerita e la rispettiva gradazione (inserire 0 0 per terminare):\n");
  64. scanf("%f%f", &ml, &gradi);
  65. if(!(ml==STOP && gradi==STOP))
  66. alcol+=alcolemia(ml, gradi);
  67. }while(ml!=STOP && gradi!=STOP);
  68.  
  69. return alcol;
  70. }
  71.  
  72. float alcolemia(float ml, float gradi)
  73. {
  74. return ml*gradi*PALCOL/(PARTI*(kg)*(coeff));
  75. }
  76.  
  77. void responso(float alcol)
  78. {
  79. int orelim, minlim, ore, min;
  80.  
  81. orelim=(alcol-LIM)/SMALTI;
  82. minlim=MINORE*((alcol-LIM)/SMALTI-orelim);
  83. ore=(alcol)/SMALTI;
  84. min=MINORE*(alcol/SMALTI-ore);
  85. printf("Il tasso alcolemico del sangue è %f g/l, ", alcol);
  86. if(alcol<LIM)
  87. printf("quindi ti è consentito guidare\n");
  88. else{
  89. printf("quindi non ti è consentito guidare\n\nTi sarà consentito guidare tra circa ");
  90. if(orelim>1)
  91. printf("%d ore e %d minuti\n", orelim, minlim);
  92. else if(orelim==1)
  93. printf("%d ora e %d minuti\n", orelim, minlim);
  94. else
  95. printf("%d minuti\n", minlim);
  96. }
  97.  
  98. printf("Inoltre smaltirai completamente l'alcol tra circa ");
  99. if(ore>1)
  100. printf("%d ore e %d minuti\n", ore, min);
  101. else if(ore==1)
  102. printf("%d ora e %d minuti\n", ore, min);
  103. else
  104. printf("%d minuti\n", min);
  105.  
  106. return ;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement