我从零开始学习C语言(3)

从现在开始,我要多写点文章内容^_^,输出是最好的学习。

2.4 显示变量值

2.4.1显示单变量

#include <stdio.h>
 
int main(void)
{
    int width, height, length, volume;
    width = 1;
    height = 2;
    length = 3;
    
    volume = width * height * length;
 
    //打印变量volume
    printf("体积是:%d\n", volume);

    return 0;
}

我们通过printf函数的调用来输出体积的值。

这里有个%d,这个叫占位符:指明了变量值的显示位置

而常用的,用%d表示显示int型变量,%f来显示float型变量

默认情况下,%f显示小数点后6位数字,但若想强制显示小数点后n位数字,可以写成%.nf,其中%f中间加了点号和数字n。这里的n不是字母,是数字。例如:

#include <stdio.h>
 
int main(void)
{
    float height;
    height = 1.79;
    
    //强制保留3位小数
    printf("身高是%.3f米", height);

    return 0;
}

注意float的有效数字是6-7位,这里的有效数字指的是:非0的数有几个。超过了就会舍入,不够精确了。

2.4.2 显示多变量

printf可以同时显示多个变量的值,实例如下:

#include <stdio.h>
 
int main(void)
{
    float height;
    int weight;
    height = 1.79;
    weight = 70;
    
    //强制保留3位小数
    printf("身高是%.3f米,体重是%d公斤", height, weight);

    return 0;
}

2.4.3 看书中的程序例子

程序1:计算箱子的空间重量

运输公司特别不喜欢又大又轻的箱子,因为箱子在卡车或飞机上运输时要占据宝贵的空间。事实上,对于这类箱子,公司常常要求按照箱子的体积而不是重量来支付额外的费用。在美国,通常的做法是把体积除以166(这是每磅允许的立方英寸数)。如果除得的商(也就是箱子的“空间”重量或“体积”重量)大于箱子的实际重量,那么运费就按照空间重量来计算。(除数166是针对国际运输的,计算国内运输的空间重量时通常用194代替。)假设运输公司雇你来编写一个计算箱子空间重量的程序。因为刚刚开始学习C语言,所以你决定先编写一个计算特定箱子空间重量的程序来试试身手,其中箱子的长、宽、高分别是12英寸、10英寸和8英寸。C语言中除法运算用符号 / 表示。所以,很显然计算箱子空间重量的公式如下:
weight = volume / 166;

这里的 weight 和 volume 都是整型变量,分别用来表示箱子的重量和体积。但是上面这个公式并不是我们所需要的。在C语言中,如果两个整数相除,那么结果会被“截短”:小数点后的所有数字都会丢失。12英寸×10英寸×8英寸的箱子体积是960立方英寸,960除以166的结果是5而不是5.783,这样使得重量向下取整;而运输公司则希望结果向上取整。一种解决方案是在除以166之前把体积数加上165:
weight = (volume + 165) / 166;
这样,体积为166的箱子重量就为331/166,取整为1;而体积为167的 箱子重量则为332/166,取整为2。下面给出了利用这种方法编写的计算空间重量的程序。
#include <stdio.h>
 
int main(void)
{
    int height, length, width, volume, weight;
    height = 8;
    length = 12;
    width = 10;
    volume = height * length * width;
    weight = (volume + 165) / 166;

    printf("尺寸:长%d x 宽%d x 高%d \n", length, width, height);
    printf("体积(立方英尺):%d \n", volume);
    printf("体积重量(磅):%d \n", weight);

    return 0;
}

可以运行看看结果。

2.4.4 对上述计算进一步延伸

用到了if判断。这个可以后面再看。

#include <stdio.h>
 
int main(void)
{
    int height, length, width, volume, weight;
    height = 8;
    length = 12;
    width = 10;
    volume = height * length * width;
    weight = volume / 166;
    if(volume % 166 != 0) //若不能整除166
    {
        weight++;
    }

    printf("尺寸:长%d x 宽%d x 高%d \n", length, width, height);
    printf("体积(立方英尺):%d \n", volume);
    printf("体积重量(磅):%d \n", weight);

    return 0;
}

整体思路:先利用两个整数相除是整除的功能获取向下取整的数再看有没有余数,若有就+1,没有代表能整数,就直接获得相除的数

2.4.5 初始化

程序开始执行时,全局变量会默认设置为0,就是搁在main函数外面的变量,而局部变量,搁函数里面的就不会。未初始化的(uninitialized):没有默认值,且没有被赋值的变量。

如果试图访问未初始化的变量,会得到随机的垃圾数。

我在DevC++的64位编译器情况下会看到得到的数要么是1或者是0,很有迷惑性。是编译器帮你优化了;换成32位,就会得到垃圾数。

我们就需要用赋值的方法给变量赋初始值。或者是变量声明的同时赋初始值,如下所示:

#include <stdio.h>
 
int main(void)
{
    int height = 8, length = 12, width = 10;

    return 0;
}

当然这种形式也可以出现有的赋初始值,有的不赋初始值

#include <stdio.h>
 
int main(void)
{
    int height, length, width = 10;

    return 0;
}

2.4.6 显示表达式的值

printf函数可以显示任意数量表达式的值。这个技巧可以简化程序,减少变量数量。

例如:

#include <stdio.h>
 
int main(void)
{
    int height = 8, length = 12, width = 10;
    printf("体积:%d \n", height * length * width);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jenkinscao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值