C语言之温度转换

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

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

这是关于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


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
//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
/*  本代码学习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
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 

你可能感兴趣的:(c语言,开发语言)