华氏温度和摄氏温度的转换程序
一、整数版
#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;表达式中先乘5再除以9而不是直接写5/9,原因是C语言及其他很多语言中,整数除法操作执行舍位,结果中的任何小数部分都会被舍弃。由于5和9都是整数,5/9后截取后得到0,因此这样求得的所有摄氏温度都是0。
2.printf是标准库函数中的所以在用到printf函数时需要include <stdio.h>
二、浮点数版
#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按照整型除法结果是0,5.0/9.0是两个浮点数相除,结果不会被舍位。
2.一个整型跟一个浮点型进行运算时,将会被自动转化成浮点型。fahr - 32中32将会被转化成浮点型。fahr <= upper也是将整型转化成浮点型再进行运算
3.printf函数打印
%d 按照十进制整型打印
%6d 按照十进制整型打印,至少6个字符宽
%f 按照浮点数打印
%6f 按照浮点数打印,至少6个字符宽
%.2 按照浮点数打印,小数点后有两位小数
%6.2 按照浮点数打印,至少6个字符宽,小数点后两位小数
printf函数还支持下列格式:%o表示八进制数,%x表示十六进制数,%c表示字符,%s表示字符串,%%表示百分号(%)本身
网友评论