设为首页 加入收藏

TOP

C语言入门经典(第5版)之编程初步(四)
2014-11-23 20:25:11 来源: 作者: 【 】 浏览:32
Tags:语言 入门 经典 编程 初步
s cats + dogs – ponies -data

计算这些表达式,都会得到一个数值。注意,变量名也是一个表达式,它的计算结果是一个值,即该变量包含的值。最后一个例子的值是data的负值,所以如果data包含-5,表达式-data的值就是5。当然,data的值仍是-5。稍后将详细讨论如何构建表达式,并学习运算规则。这里先用基本算术运算符做一些简单的例子。表2-1列出了这些算术运算符。

表2-1 基本算术运算符

运 算 符

动 作

+

-

*

/

%

取模(Modulus)

应用运算符的数据项一般称为操作数,两边的操作数都是整数时,所有这些运算符都生成整数结果。前面没有提到过取模运算符。它用运算符左边的表达式值去除运算符右边的表达式值,并求出其余数,所以有时称为余数运算符。表达式12 % 5的结果是2。因为12除以5的余数是2。下一节将详细介绍。所有这些运算符的工作方式都与我们的常识相同,只有除法运算符例外,它应用于整数时有点不直观。下面进行一些算术运算。

注意:

应用运算符的值称为操作数。需要两个操作数的运算符(如%)称为二元运算符。应用于一个值的运算符称为一元运算符。因此-在表达式a-b中是二元运算符,在表达式-data中是一元运算符。

试试看:减和乘

下面基于食物的程序演示了减法和乘法:

// Program 2.5 Calculations with cookies

#include

int main(void)

{

int cookies = 5;

int cookie_calories = 125; //Calories per cookie

int total_eaten = 0; //Total cookies eaten

int eaten = 2; // Number to be eaten

cookies = cookies - eaten; // Subtract number eaten fromcookies

total_eaten = total_eaten + eaten;

printf( I have eaten %d cookies. There are %d cookies left,

eaten, cookies);

eaten = 3; // New value for cookies eaten

cookies = cookies - eaten; // Subtract number eaten from cookies

total_eaten = total_eaten + eaten;

printf( I have eaten %d more. Now there are %d cookiesleft , eaten, cookies);

printf( Total energy consumed is %dcalories. , total_eaten*cookie_calories);

return 0;

}

这个程序产生如下输出:

I have eaten 2 cookies. There are 3 cookies left

I have eaten 3 more. Now there are 0cookies left

Total energy consumedis 625 calories.

代码的说明

首先声明并初始化3个int类型的变量:

int cookies = 5;

int cookie_calories =125; //Calories per cookie

int total_eaten = 0; //Total cookies eaten

在程序中,使用变量total_eaten计算吃掉的饼干总数,所以要将它初始化为0。

下一个声明并初始化的变量存储吃掉的饼干数,如下:

inteaten = 2; // Number to be eaten

用减法运算符从cookies中减掉eaten:

cookies= cookies - eaten; //Subtract number eaten from cookies

减法运算的结果存回cookies变量,所以cookies的值变成3。因为吃掉了一些饼干,所以要给total_eaten增加吃掉的饼干数:

total_eaten= total_eaten + eaten;

将eaten变量的当前值2加到total_eaten的当前值0上,结果存储回变量total_eaten。printf()语句显示剩下的饼干数:

printf( I have eaten %d cookies. There are%d cookies left,

eaten, cookies);

这个语句在一行上放不下,所以在printf()的第一个参数后的逗号后面,将该语句的其他内容放在下一行上。可以像这样分拆语句,使程序易于理解,或放在屏幕的指定宽度之内。注意不能用这种方式拆分第一个字符串参数。不能在字符串的中间放置换行符。需要将字符串拆开成两行或多行时,一行上的每一段字符串必须有自己的一对双引号。例如,上面的语句可以写成:

printf( I have eaten %d cookies.

There are %d cookies left,

eaten, cookies);

如果两个或多个字符串彼此相邻,编译器会将它们连接起来,构成一个字符串。

用整数值的转换说明符%d将eaten和cookies的值显示出来。在输出字符串中,eaten的值取代第一个%d, cookies的值取代第二个%d。字符串在显示之前会先换行,因为开头处有一个 。

下一个语句将变量eaten的值设为一个新值:

eaten= 3; // New value for cookies to beeaten

新值3取代eaten变量中的旧值2。然后完成和以前一样的操作序列:

cookies = cookies - eaten; // Subtract numbereaten from cookies

total_eaten =total_eaten + eaten;

printf( I have eaten %d more.Now there are %d cookies left , eaten, cookies);

最后,在执行return语句,结束程序前,计算并显示被吃掉饼干的卡路里数:

printf( Totalenergy consumed is %d calories. , total_eaten*cookie_calories);

printf()函数的第二个参数是一个算术表达式,而不是变量。编译器会将表达式total_eaten*cookie_calories的计算结果存储到一个临时变量中,再把该值作为第二个参数传送给printf()函数。函数的参数总是可以使用算术表达式,只要其计算结果是需要的类型即可。

下面看看除法和取模运算符。

试试看:除法和取模运算符

假设你有一罐饼干(其中有45块饼干)和7个孩子。要把饼干平分给每个孩子,计算每个孩子可得到几块饼干,分完后剩下几块饼干。

// Program 2.6 Cookies and kids

#include

int main(void)

{

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 cookiesl

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

评论

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