C语言之温度转换

发布时间:2023年12月19日

学习的历程是漫长的 仅仅用这一文章大概讲讲我这几天自己学习的历程

下面自己总结归纳的一些纯干货理解( 程序打在后面的 )

这是关于while 循环语句的温度转换

虽然看起来比较简单其实后面要注意的东西还是很细 很多

1.? ?输出的时候不是右边对齐的 可以再printf中直接%d指明打印的宽度

2.? ?我们使用的整形算数 得到的摄氏度不太准确 计算机忽略了小数点后面的

我们此处直接1.f 或者2.f 就是直接保留了多少位

3? ? 整个程序不能用5/9这种形式 原因是整形除法的计算规则 是因为他们相除并且舍位后是0

但是如果加了小数点 例如5.0/9.0就是浮点整形 就不舍位了

4? ?printf函数打印时一些规则

%d 按照十进制整形数打印

%6d至少6个字符宽度
%f按浮点数打印

%6f按浮点数打印 并至少6个字符宽度

如下程序

#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("%3d %6d\n", fahr, celsius);
?? ??? ?fahr = fahr + step;
?? ?
?? ?}

#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 %6.2f\n", fahr, celsius);//那个几f的意思就是保留到小数点后几位
//?? ??? ?fahr = fahr + step;
//?? ?}

?for语句显然优化了此代码

1两者执行结果显然一模一样但是使用for语句就省去了大量的变量

直接把温度 上限 下限 步长都当成常量

而且计算温度的表达式子直接被当成printf的第三个参数 而不是一个单独赋值语句

2for语句是一种循环语句 是对while语句的一种推广 for 其实更直观 括号里还是要分三个部分?

各部分之间用分号连接

?把这三部分拆开来看?

fahr=0 ;只执行一次‘

而fahr,<=300;’被看成条件被不停检验

后来是循环控制对该条件求值 如果检验到了结果为真就一直执行?

结果为假的 就直接结束

3最后再小结一下

其实for和 while 都是循环语句 具体用谁都是可以的

但是看哪一个更清晰 for语句就是比较适合初始化 和增加步长都是单条语句

他就比while更紧凑

#include<stdio.h>
/* ?本代码学习for语句的使用*/
int main()
{
?? ?int fahr=0;

? ? for (fahr = 0; fahr <= 300; fahr = fahr + 20)
?? ??? ??? ?printf("%3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));

修改温度转换程序 以逆序进行

#include <stdio.h>
int main()
{
?? ?int fahr;
?? ?for (fahr = 300; fahr >= 0; fahr = fahr - 20)
?? ??? ?printf(" % 3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));

}

这里用for 改一下初始变量的值 把加改成减其他的不变

码字不易啊 如果有大佬看到可多多指点

后续保持2到3天一更新吧 希望也能给像我一样的小白一些灵感启发

也欢迎多多交流 QQ地址@2192218405.com?

文章来源:https://blog.csdn.net/I_T_anddream/article/details/132768238
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。