-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
121 lines (102 loc) · 3.51 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
int setSpeed(){
int speed;
do{
printf("\nVelocità massima percorso (in km/h): ");
scanf("%d",&speed);
if(speed <= 0){
printf("\nNon puoi specificare una velocità negativa.\n");
}
else if(speed > 100 && speed < 181){
printf("\nAttenzione, questo viaggio potrebbe essere contato nelle statistiche gara.\n");
}
else if(speed < 100 && speed > 0){
printf("\nQuesto viaggio verrà contato nelle statistiche reali.\n");
}
else{
printf("\nNon puoi specificare una velocità superiore a 180 km/h.\n");
}
}while(speed <= 0 | speed > 180);
return speed;
}
void timeCalcBefore(double strt_km, double speed){
double irl_km, irl_raw, irl_raw_m, irl_raw_s, irl_h, irl_m, irl_s;
irl_km = strt_km/15.56;
irl_raw = irl_km/speed;
double irl_raw_dec = modf(irl_raw, &irl_h);
/*
printf("\nDEBUG: Normale h: %.15f\n", irl_raw);
printf("\nDEBUG: Parte intera h: %.0f\n", irl_h);
printf("\nDEBUG: Parte decimale h: %.15f\n", irl_raw_dec);
*/
irl_raw_m = irl_raw_dec * 60;
double irl_raw_dec_m = modf(irl_raw_m, &irl_m);
/*
printf("\nDEBUG: Normale m: %.15f\n", irl_raw_m);
printf("\nDEBUG: Parte intera m: %.0f\n", irl_m);
printf("\nDEBUG: Parte decimale m: %.15f\n", irl_raw_dec_m);
*/
irl_raw_s = irl_raw_dec_m * 60;
double irl_raw_dec_s = modf(irl_raw_s, &irl_s);
/*
printf("\nDEBUG: Normale s: %.15f\n", irl_raw_s);
printf("\nDEBUG: Parte intera s: %.0f\n", irl_s);
printf("\nDEBUG: Parte decimale s: %.15f\n", irl_raw_dec_s);
*/
printf("\nTempo di percorrenza (in base ai km iniziali) stimato: %.0f h, %.0f m, %.0f s.\n",irl_h,irl_m,irl_s);
}
void timeCalc(double g_km, double speed){
double irl_km, irl_raw, irl_raw_m, irl_raw_s, irl_h, irl_m, irl_s;
irl_km = g_km/15.56;
irl_raw = irl_km/speed;
double irl_raw_dec = modf(irl_raw, &irl_h);
/*
printf("\nDEBUG: Normale h: %.15f\n", irl_raw);
printf("\nDEBUG: Parte intera h: %.0f\n", irl_h);
printf("\nDEBUG: Parte decimale h: %.15f\n", irl_raw_dec);
*/
irl_raw_m = irl_raw_dec * 60;
double irl_raw_dec_m = modf(irl_raw_m, &irl_m);
/*
printf("\nDEBUG: Normale m: %.15f\n", irl_raw_m);
printf("\nDEBUG: Parte intera m: %.0f\n", irl_m);
printf("\nDEBUG: Parte decimale m: %.15f\n", irl_raw_dec_m);
*/
irl_raw_s = irl_raw_dec_m * 60;
double irl_raw_dec_s = modf(irl_raw_s, &irl_s);
/*
printf("\nDEBUG: Normale s: %.15f\n", irl_raw_s);
printf("\nDEBUG: Parte intera s: %.0f\n", irl_s);
printf("\nDEBUG: Parte decimale s: %.15f\n", irl_raw_dec_s);
*/
printf("\nTempo di percorrenza (in base ai km massimi) stimato: %.0f h, %.0f m, %.0f s.\n",irl_h,irl_m,irl_s);
}
void kmCalc(){
double km_strt, km_max, adding;
do{
printf("\nInserisci i km iniziali: ");
scanf("%lf",&km_strt);
int speed = setSpeed();
/*
printf("\nDEBUG: You have set a maximum speed of %d km/h",speed);
*/
adding = (km_strt * 24.90) / 100;
km_max = km_strt + adding;
if(km_max > km_strt + 1000){
km_max = km_strt + 1000;
printf("\nI km massimi percorribili sono: %.0lf",km_max);
}
else{
printf("\nI km massimi percorribili sono: %.0lf",km_max);
}
timeCalcBefore(km_strt, speed);
timeCalc(km_max, speed);
}while(km_strt <= 0);
}
void main() {
do{
kmCalc();
}while(true);
}