Data la nota imprecisione dei float ... la sintassi del C semplicemente ne proibisce l'uso nello switch
Guglielmo
Edit : Notoriamente, anche se il compilatore non ti da errore, non devi neanche aspettarti che funzioni un IF (float == float) visto che non sai come un determinato numero viene convertito, memorizzato e arrotondato ... ... es. tu assegni ad una variabile il valore 2.51000000, ma nessuno ti dice se in realtà, quel valore viene memorizzato come 2.50999998 o come 2.51000011 ... a secondo di come fa la conversione il compilatore
Potresti convertire il float in intero.
Visto che è una temperatura con 1 solo decimale di precisione, moltiplichi il numero per 10 e fai il confronto con 100, 200 e 300.