• C程序设计语言(K&R) 笔记1


    当作复习。。。 

    (1)将华氏度 换算成 摄氏度,公式:

    ℃=(5/9)(̧°F-32)
    #include <stdio.h>
    
    int transformTemprature(int F){
            //`C=(5/9)(̧`F-32)
            return (int)(5 * (F-32) / 9);
    }
    
    int main(){
    
            int lower = 0;
            int upper = 300;
            int step = 20;
    
            for(int f=lower; f<=upper; f+=step){
                    printf("%d   %d
    ",f,transformTemprature(f));
            }
    
            return 0;
    } 
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ vim Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ cc -std=gnu99 Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ a.out
    0  -17
    20  -6
    40  4
    60  15
    80  26
    100  37
    120  48
    140  60
    160  71
    180  82
    200  93
    220  104
    240  115
    260  126
    280  137
    300  148
    
    
    修改为
                    printf("%d	%d
    ",f,transformTemprature(f));
    加入制表符 	
    
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ vim Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ cc -std=gnu99 Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ a.out
    0    -17
    20    -6
    40    4
    60    15
    80    26
    100    37
    120    48
    140    60
    160    71
    180    82
    200    93
    220    104
    240    115
    260    126
    280    137
    300    148
    
    修改为
                    printf("%3d%3d
    ",f,transformTemprature(f));
    右对齐
    
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ vim Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ cc -std=gnu99 Temprature.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ a.out
      0    -17
     20     -6
     40      4
     60     15
     80     26
    100     37
    120     48
    140     60
    160     71
    180     82
    200     93
    220    104
    240    115
    260    126
    280    137
    300    148

    (2)为了使精度更高。将变量由int 改为 float  

    #include <stdio.h>
    
    
    float transformTemprature(int F){
            //`C=(5/9)(̧`F-32)
            return (5.0/9.0) * (F-32.0);
    }
    
    int main(){
    
            float lower = 0;
            float upper = 300;
            float step = 20;
    
            for(float f=lower; f<=upper; f+=step){
                    printf("%3.0f%6.1f
    ",f,transformTemprature(f));
            }
    
            return 0;
    } 
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ vim TempratureFloat.c
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ cc -std=gnu99 TempratureFloat.c 
    lenovo-myc@lenovomyc-Lenovo-Product:~/C_test$ a.out
      0 -17.8
     20  -6.7
     40   4.4
     60  15.6
     80  26.7
    100  37.8
    120  48.9
    140  60.0
    160  71.1
    180  82.2
    200  93.3
    220 104.4
    240 115.6
    260 126.7
    280 137.8
    300 148.9

    (3)去掉多余参数

    #include <stdio.h>
    
    float transformTemprature(int F){
            //`C=(5/9)(̧`F-32)
            return (5.0/9.0) * (F-32.0);
    }
    
    int main(){
    
            for(int f=0; f<=300; f+=20){
                    printf("%3d%6.1f
    ",f,transformTemprature(f));
            }
    
            return 0;
    }

    (4) 将 幻数  替换为 #define 符号常量

    #include <stdio.h>
    
    #define LOWWER 0   /* lower limit of table */
    #define UPPER 300  /* upper limit */
    #define STEP 20   /* step size */
    
    float transformTemperature(int f){
            return (5.0/9.0) * (f - 32.0);
    }
    
    /* print Fahrenheit-Celsius table */
    int main(){
    for(int f=LOWWER; f<=UPPER; f+=STEP){ printf("%3d%6.1f ",f,transformTemperature(f)); } return 0; }
  • 相关阅读:
    几个影响sql性能语句的例子
    orderby工作原理 + 最小代价取随机数
    count(*)实现原理+两阶段提交总结
    脏页flush和收缩表空间
    mysql本身用错索引+给字符串字段加索引
    Java概念辨析:equals和== equals和hashCode
    abstract方法必须在abstract类中 这句话是对的还是错的?
    java实际项目中interface和abstract interface 区别
    【timeisprecious】【JavaScript 】JavaScript String 对象
    Linux学习(三)putty,xshell使用以及密匙登陆
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4705703.html
Copyright © 2020-2023  润新知