華氏溫度和攝氏溫度的轉(zhuǎn)換程序
一、整數(shù)版
#include <stdio.h>
int main()
{
int fahr,celsius;
int lower,upper,step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while(fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
1.celsius = 5 * (fahr - 32) / 9;表達(dá)式中先乘5再除以9而不是直接寫5/9,原因是C語(yǔ)言及其他很多語(yǔ)言中,整數(shù)除法操作執(zhí)行舍位,結(jié)果中的任何小數(shù)部分都會(huì)被舍棄。由于5和9都是整數(shù),5/9后截取后得到0,因此這樣求得的所有攝氏溫度都是0。
2.printf是標(biāo)準(zhǔn)庫(kù)函數(shù)中的所以在用到printf函數(shù)時(shí)需要include <stdio.h>
二、浮點(diǎn)數(shù)版
#include <stdio.h>
int main()
{
float fahr,celsius;
int lower,upper,step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while(fahr <= upper)
{
celsius = (5.0 / 9.0) * (fahr - 32.0) ;
printf("%3.0f\t%6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}
1.5/9按照整型除法結(jié)果是0,5.0/9.0是兩個(gè)浮點(diǎn)數(shù)相除,結(jié)果不會(huì)被舍位。
2.一個(gè)整型跟一個(gè)浮點(diǎn)型進(jìn)行運(yùn)算時(shí),將會(huì)被自動(dòng)轉(zhuǎn)化成浮點(diǎn)型。fahr - 32中32將會(huì)被轉(zhuǎn)化成浮點(diǎn)型。fahr <= upper也是將整型轉(zhuǎn)化成浮點(diǎn)型再進(jìn)行運(yùn)算
3.printf函數(shù)打印
%d 按照十進(jìn)制整型打印
%6d 按照十進(jìn)制整型打印,至少6個(gè)字符寬
%f 按照浮點(diǎn)數(shù)打印
%6f 按照浮點(diǎn)數(shù)打印,至少6個(gè)字符寬
%.2 按照浮點(diǎn)數(shù)打印,小數(shù)點(diǎn)后有兩位小數(shù)
%6.2 按照浮點(diǎn)數(shù)打印,至少6個(gè)字符寬,小數(shù)點(diǎn)后兩位小數(shù)
printf函數(shù)還支持下列格式:%o表示八進(jìn)制數(shù),%x表示十六進(jìn)制數(shù),%c表示字符,%s表示字符串,%%表示百分號(hào)(%)本身