设为首页 加入收藏

TOP

C语言入门经典(第5版)之编程初步(五)
2014-11-23 20:25:11 来源: 作者: 【 】 浏览:33
Tags:语言 入门 经典 编程 初步
eft over

// Calculate how many cookies each child gets when they are divided up

cookies_per_child = cookies/children; //Number of cookies per child

printf(You have %d children and %d cookies , children,cookies);

printf(Give each child %d cookies. ,cookies_per_child);

// Calculate how many cookies are left over

cookies_left_over = cookies%children;

printf(There are %d cookies left over. , cookies_left_over);

return 0;

}

执行程序后的输出:

You have 7 children and 45 cookies

Give each child 6cookies.

There are 3 cookiesleft over.

代码的说明

下面一步一步地解释这个程序。下面的语句声明并初始化4个整数变量:cookies、children、cookies_per_child、cookies_left_over:

int cookies = 45; // Number of cookies in the jar

int children = 7; // Number of children

int cookies_per_child= 0; //Number of cookies per child

int cookies_left_over = 0; //Number of cookies left over

使用除号运算符“/”将饼干数量除以孩子的数量,得到每个孩子分得的饼干数:

cookies_per_child= cookies/children; //Number of cookies per child

下面两个语句输出结果,即cookies/children变量的值:

printf(You have %d children and %dcookies , children, cookies);

printf(Give each child %dcookies. , cookies_per_child);

从输出结果可以看出,cookies_per_child的值是6。这是因为当操作数是整数时,除法运算符总是得到整数值。45除以7的结果是6,余3。下面的语句用取模运算符计算余数:

cookies_left_over= cookies%children;

赋值运算符右边的表达式计算cookies除以children得到的余数。最后一个语句输出余数:

printf(Thereare %d cookies left over. , cookies_left_over);

2. 深入了解整数除法

当一个操作数是负数时,使用除法和模数运算符的结果是什么?在执行除法运算时,如果操作数不同号,结果就是负数。因此,表达式-45/7和45/-7的结果相同,都是-6。如果操作数同号,都是正数或都是负数,结果就是正数。因此45/7和-45/-7结果都是6。至于模数运算符,不管操作数是否同号,其结果总是和左操作数的符号相同。因此45%-7等于3,-45/7等于-3,-45/-7也等于-3。

3. 一元运算符

例如,乘法运算符是一个二元运算符。因为它有两个操作数,其结果是一个操作数乘以另一个操作数。还有一些运算符是一元运算符,即它们只需一个操作数。后面将介绍更多的例子。但现在看看一个最常用的一元运算符。

4. 一元减号运算符

前面使用的运算符都是二元运算符,因为它们都操作两个数据项。C语言中也有操作一个数据项的一元运算符。一元减号运算符就是一个例子。若操作数为负,它就生成正的结果,若操作数为正,它就生成负的结果。要了解一元减号运算符的使用场合,考虑一下追踪银行账号。假定我们在银行存了200元。在簿子里用两列记录这笔钱的收支情况,一列记录付出的费用,另一列记录得到的收入,支出列是负数,收入列是正数。

我们决定购买一片价值50元的CD和一本价值25元的书。假使一切顺利,从银行的初始值中减掉支出的75元后,就得到了余额。表2-2说明这些项的记录情况。

表2-2 收入与支出记录

收 入

支 出

存 款 余 额

支票收入

$200

$200

CD

$50

$150

$25

$125

结余

$200

$75

$125

如果将这些数字存储到变量中,可以将收入及支出都输入为正数,只有计算余额时,才会把这些数字变成负数。为此,可以将一个负号(-)放在变量名的前面。

要把总支出输出为负数,可编写如下语句:

int expenditure = 75;

printf(Your balance has changedby %d., -expenditure);

这会产生如下结果:

Yourbalance has changed by -75.

负号表示花掉了这笔钱,而不是赚了。注意,表达式-expenditure不会改变expenditure变量的值,它仍然是75。这个表达式的值是-75。

在表达式-expenditure中,一元减号运算符指定了一个动作,其结果是翻转expenditure变量的符号:将负数变成正数,将正数变成负数。这和编写一个负数(如-75或-1.25)时使用的负号运算符是不同的。此时,负号不表示一个动作,程序执行时,不需要执行指令。它只是告诉编译器,在程序里创建一个负的常量。

首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言图形编程--俄罗斯方块制作(.. 下一篇C语言图形编程--俄罗斯方块制作(..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: