Scrivere un semplice convertitore di temperatura sembra banale finché non ti rendi conto di quanto facilmente la logica di base si interrompa. Inizi con un ciclo “mentre”, apri una tabella da Fahrenheit a Celsius e tutto sembra a posto. Ma poi hai bisogno di un punto dati specifico, come la temperatura del corpo umano, e all’improvviso il tuo codice pulito si trasforma in un incubo di debug.
Ecco uno sguardo dal mondo reale su come funziona il looping in C, perché la precisione è importante e come impedire che i programmi si blocchino per sempre.
Nozioni di base: cicli interi
Consideriamo la versione più semplice possibile. Vuoi stampare una tabella da 0 a 100 gradi Fahrenheit, saltando di 10 secondi. Utilizzi un numero intero “int” per il contatore “a”.
Esegui questo e otterrai una griglia pulita:
“testo”.
0 gradi F = -17 gradi C
10 gradi F = -12 gradi C
20 gradi F = -6 gradi C
30 gradi F = -1 gradi C
40 gradi F = 4 gradi C
50 gradi F = 10 gradi C
60 gradi F = 15 gradi C
70 gradi F = 21 gradi C
80 gradi F = 26 gradi C
90 gradi F = 32 gradi C
100 gradi F = 37 gradi C
c
int principale() {
fluttuare a;
un = 0;
mentre (a <= 100) {
printf("%6.2f gradi F = %6.2f gradi C\n", a, (a - 32.0) * 5.0 / 9.0);
a = a + 10;
}
restituire 0;
}
c
int principale() {
fluttuare a;
un = 0;
mentre (a <= 100) {
se (a > 98,6) {
printf(“%6.2f gradi F = %6.2f gradi C\n”, 98.6, (98.6 – 32.0) * 5.0 / 9.0);
}
printf(“%6.2f gradi F = %6.2f gradi C\n”, a, (a – 32.0) * 5.0 / 9.0);
a = a + 10;
}
restituire 0;
}
c
int principale() {
float a, b;
un = 0;
b = -1;
mentre (a <= 100) {
se ((a > 98,6) && (b < 98,6)) {
printf("%6.2f gradi F = %6.2f gradi C\n", 98.6, (98.6 - 32.0) * 5.0 / 9.0);
}
printf("%6.2f gradi F = %6.2f gradi C\n", a, (a - 32.0) * 5.0 / 9.0);
b = un;
a = a + 10;
}
restituire 0;
}
```
Ora la logica è valida. Stampa la riga aggiuntiva solo se “a” è attualmente superiore a 98,6 E “b” era precedentemente inferiore a 98



















