学习内容:
第一章
1.2 变量与算术表达式
- 使用公式℃=(5/9)(℉-32)打印华氏温度与摄氏温度对照表
#include <stdio.h>
int main()
{
//Print Fahrenheit-Celsius table; C=(5/9)(F-32)
int celsius, fahr;
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;
}
return 0;
}
知识点:
- 使用lower,upper,step代替具体数值的好处:便于后续修改debug
lower = 0;
upper = 300;
step = 20;
- 乘法表达式的写法:在C语言中,整数除法操作将执行舍位,结果中的任何小数部分都会被舍弃。由于5和9都是整数,5/9相除后经截取所得结果为0,因此这样求得的所有摄氏温度都将为0。
celsius = 5 * (fahr - 32) / 9;
- 使用公式℃=(5/9)(℉-32)打印华氏温度与摄氏温度对照表(右对齐)
#include <stdio.h>
int main()
{
//Print Fahrenheit-Celsius table; C=(5/9)(F-32)
int celsius, fahr;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9;
printf("%3d %6d\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}
- 使用公式℃=(5/9)(℉-32)打印华氏温度与摄氏温度对照表(右对齐华氏度结果保留小数点后一位)
#include <stdio.h>
int main()
{
//Print Fahrenheit-Celsius table; C=(5/9)(F-32)
float celsius, fahr;
float 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 %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}
知识点:
-
基本数据类型:
char 字符——一个字节
short 短整型
long 长整型
double 双精度浮点型
%d 按照十进制整型数打印
%6d 按照十进制整型数打印,至少6个字符宽
%f 按照浮点数打印
%6f 按照浮点数打印,至少6个字符宽
%.2f 按照浮点数打印,小数点后有两位小数
%6.2d 按照十进制整型数打印,至少6个字符宽,小数点后有两位小数
%o 表示八进制数
%x 表示十六进制数
%c 表示字符
%s 表示字符串
%% 表示百分号(%)本身
练习题:
1-3. 修改温度转换程序,使之能在转换表的顶部打印一个标题。
#include <stdio.h>
int main()
{
//Print Fahrenheit-Celsius table; C=(5/9)(F-32)
int celsius, fahr;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
printf("Fahr\tCelsius\n");
while (fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}
1-4. 编写一个程序打印摄氏温度转换为相应的华氏温度的转换表。
#include <stdio.h>
int main()
{
//Print Celsius-Fahrenheit table; F=C(9/5)+32
int celsius, fahr;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
celsius = lower;
while (celsius <= upper)
{
fahr = (celsius * 9) / 5 + 32;
printf("%d\t%d\n", celsius, fahr);
celsius = celsius + step;
}
return 0;
}