通过之前的学习,我们了解到让计算机说话是用“printf”,运用“printf”我们就可以让计算机想说什么就说什么了。在学会了“说话”之后,我们来看如何让计算机做数学运算,首先我们先让计算机做“加法”,就先算 1+2 吧。
回想一下小时候爸爸妈妈是如何教我们算 1+2 的呢?
妈妈说:“左手给你一个苹果,右手给你两个苹果,现在一共有几个苹果?”我们迅速地思考了一下,脱口而出:“3 个苹果”。没错!我们首先用大脑记住左手有几个苹果,再用大脑记住右手有几个苹果,妈妈问我们一共有几个时,我们的大脑进行了非常快速的计算,将刚才记住的两个数进行相加,得到结果,最后将计算出的结果说出来。我们仔细分析一下,大致分为以下 5 个步骤。
(1)用大脑记住左手的苹果数量;
(2)用大脑记住右手的苹果数量;
(3)我们的大脑将两个数字进行相加;
(4)得到结果;
(5)将结果输出。
在这期间,我们大脑一共进行了以下 4 个动作。
(1)两次输入:分别是记录左手和右手中苹果的数量;
(2)存储了 3 个值:分别是记录左手和右手中苹果的数量和相加的结果;
(3)进行了一次计算:相加;
(4)进行了一次输出:把相加的结果输出。
那我们如何让计算机做加法呢?同样也需要做以上几步。
首先我们来解决如何让计算机像我们的大脑一样记住一个数字。其实计算机的大脑就像一个“摩天大厦”,有很多一间一间的“小房子”,计算机就把需要记住的数放在“小房子”里面,一个“小房子”里只能放一个数,这样计算机就可以记住很多数。好,我们来看一看,具体怎样操作。
“=”赋值符号的作用就相当于一只手,把数字放到小房子中。
int a,b,c;
这句话就代表在计算机的“摩天大厦”中申请三间分别叫作 a、b 和 c 的小房子(注意:int和 a 之间有一个空格,a、b 与 c 之间分别用逗号隔开,末尾有一个分号表示结束)。
接下来,我们让小房子 a 和小房子 b 分别去记录两个数字 1 和 2,具体如下:
a=1;
b=2;
说明:此处有一个“=”,这可不是等于号,它叫作给予号(也称为赋值号),类似于一个箭头“”,意思是把“=”右边的内容,给了“=”左边的。例如,把 1 这个数给小房子 a,这样一来计算机就知道小房子 a 里面存储的是数字 1 了。
然后,把小房子 a 和小房子 b 里面的数相加,再将其结果放到小房子 c 中。
c=a+b;
计算机会将这个式子分两步执行:第一步先将 a+b 算出来,第二步再将 a+b 的值给“=”右边的 c。
至此,就差不多完成了,我们总结一下:
int a, b, c;
a=1;
b=2;
c=a+b;
很多同学是不是以为,现在已经全部完成了?你忘记了最重要的一步,先别急着往下看,想一想忘记了什么?
啊!你忘记了把答案输出。想一想妈妈问你一加二等于多少时,你说:“我算出来了,但是不想告诉你!”这个时候估计你少不了挨一顿揍了,不要啊!
好,那我们回忆一下,应该如何让计算机把结果输出呢。
对,使用 printf 语句。那怎么把小房子 c 里面存储的数输出呢?根据我们在本章第 2 节学到的知识,只要把要输出的内容放在双引号里面就可以了,代码如下:
printf(“c”);
那你猜此时计算机会输出什么? 对,无情地输出了一个 c。那怎样输出 c 里面的值呢? 这时我们要让另外一个角色出场了。
%d
“%d”其实一个“讨债的”,或者也可以说是“要饭的”。它的专职工作就是向别人“要钱”!那我们应该怎么使用它呢?
printf(“%d”,c)
将“%d”放在双引号之间,把小房子 c 放在双引号后面,并且用逗号隔开。这时 printf 发现双引号里面是个“讨债的”,就知道此时需要输出一个具体的数值,而不是符号,就会向双引号后面的小房子 c 索取具体的数值了。
好了,最后加上 C 语言的代码框架,计算机进行加法运算的完整代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b,c;
a=1;
b=2;
c=a+b;
printf(“%d”,c);
system(“pause”);
return 0;
}
现在赶紧去试一试吧。
·一起来找茬
1.下面这段代码是让计算机计算 321123 的结果。其中有 6 个错误,快来改正吧!
#include <stdio.h>
#include <stdlib.h>
int mian( )
{
int a,b,c;
a=321
b=123
c=b-a
print(“%d”,c)
system(“pause”);
return 0;
}
·动手试一试
1.如果要进行 3 个数相加的运算,该怎样做呢?例如:5+3+1=?
我们可以把上面的程序进行简单地改变,申请 4 个小房子分别叫作 a、b、c 和 d。用 a、b、c 分别存放 3 个加数,用 d 存放它们的和。代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b,c,d;
a=5;
b=3;
c=1;
d=a+b+c;
printf(“%d”,d);
system(“pause”);
return 0;
}
如果要 10 个数相加岂不是得定义 11 个小房子?那也太麻烦了吧。对,目前我们只能这样,但是在后面的学习中,会有更为简单的方法。
2.用计算机算出下面 3 个算式。
123456789+43214321
7078*8712
321*(123456+54321)