一.刷题 .1
题目:使用公式℃=(5/9)(℉-32)打印下列华式温度与摄氏温度对照表:
℉ | ℃ |
---|---|
0 | -17 |
20 | -6 |
40 | 4 |
60 | 15 |
…… | …… |
300 | 148 |
思路:表格有最大值和最小值限制所以要设置温度上限和下限,以及限制了步数;
要用到华氏度,摄氏度两个变量,和一个算术表达式,加入循环和格式化输出;
#include<stdio.h>
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%6.1f\n",fahr,celsius);
fahr = fahr + step;
}
}
遇到的一些问题:
1.没有将温度定义成浮点型并直接将题目中给的运算式打出来。如果用整形,则先将表达式乘5在除以9,而不是直接写成5/9.
2.打出的表格没有对齐,需要在输出的地方设置字宽。
3.使用整形运算导致计算结果不精确,所以需要设置成浮点型。
扩展:经过查阅资料学到了更简单的代码
#include<stdio.h>
main()
{
int fahr;
for(fahr = 0;fahr<=300;fahr = fahr + 20)
printf("%3d%6.1f\n",fahr,(5.0/9.0)*(fahr-32));
}
这个代码去掉了大部分变量,引入了for。