/* atk1 h3t4 -- lämpötilan yksikkömuunnin, switch-lause */ #include main() { double T; char unit; /* luetaan lämpötilan lukuarvo ja yksikkö yhdellä käskyillä. jos muotoilumerkkijonoon kirjoittaa välilyönnin kenttämäärittelyjen väliin, syöttäessä voi erottaa luvun ja yksikön välilyönnillä jos haluaa -- jos taas muotoilumerkkijonossa ei ole väliä, ei sitä saa olla syötteessäkään */ printf("Enter temperature and unit (for example 20.0C): "); scanf("%lf %c",&T,&unit); /* switch-lause: suoritettavat käskyt riippuvat siitä, mikä arvo merkkimuuttujalla unit on (mahdollisuudet ovat C, F, tai K). Huom. merkkivakiot esitetään muodossa 'a'. Jos yksiköksi yritetään syöttää jokin muu kuin C, F tai K, ohjelma herjaa käyttäjää. */ switch(unit) { case 'C': /* muunnoskaavat celciuksesta fahrenheitiin ja kelviniin, ks. h1t4 */ printf("\nThe temperature is %.2lf C, or %.2lf F, or %.2lf K\n", T,1.8*T+32.0,T+273.15); break; case 'F': /* fahrenheitista celciukseen ja kelviniin */ printf("\nThe temperature is %.2lf C, or %.2lf F, or %.2lf K\n", (T-32.0)/1.8,T,(T-32.0)/1.8+273.15); break; case 'K': /* kelvinistä celciukseen ja fahrenheitiin */ printf("\nThe temperature is %.2lf C, or %.2lf F, or %.2lf K\n", T-273.15,(T-273.15)*1.8+32.0,T); break; default: /* jos luettu merkki ei ole C, F eikä K, herjataan käyttäjää */ printf("\nHey! I said C, F or K! Not %c\n",unit); } }