用加减法计算器实例来学习int、变量、赋值、函数

前一篇我们说要讲printf函数的实际应用场景,那好我们就挑“开发一款属于我们自己的计算器”这个例子来学习C语言中的printf函数和其他新的知识。

一、计算器计算步骤拆分

我们最常见的计算需求无非是加减乘除,当我们手头上有两个数要进行加法操作时,先是在计算器中输入其中一个,再是输入符号+,然后输入第二个,按下“=”,计算器就能得出答案。

对我们的动作进行拆解和归类,就会发现,我们需要进行的操作是输入数据和按下操作符号(比如加减乘除还有最后的的“=”)。但我们有时输入整数有时输入小数,难道都一起处理吗?计算器不像我们的人脑,在学习了相关的数学知识后能够一眼辨认出2是整数,而2.5是小数,而且我们知道小数和小数相加要小数点对齐之后再相加,但计算器不知道,所以我们需要对我们输入的数据刻意地进行分类,之后计算器才能够知道要开始什么样的运算法则。

二、C语言数据类型语法——int、float

(1)类型定义:

我们在计算器中输入的通常都会是整数还有小数,而C语言也对这两种类型的数据进行了定义,前者的数据叫整型类型,后者叫浮点数类型。在让计算器进行正式的加减乘除之前,需要先告诉计算器我输入的数据是什么类型的,整型类型的数据用int来表示,而浮点数类型的小数点不超过6位的数据用 float来表示。

(2)变量引入

由于加法是一个可以被程序化的动作,所以当我们在计算2+3或者4+5再或者是6+7时统统都可以表示为a+b,而结果就可以表示为c,用符号代替数字,是将数字的意义抽象出来然后用符号去替代数字即为代数,也就是C语言中变量的意思。

(3)用C语言怎么写

①整体框架

在C语言中,“int a; ” 这样就表示了一条语句,表示我在告诉计算器a是整型类型。同理“float b”。

我们先来看整型数据的计算器该怎么用C语言来设计我们要给机器下达的指令。

先写整体框架:

#include<stdio.h>

int main()

{

return 0;

}
接下来我们需要进行以下几步:

定义数据、输入数据、计算数据、输出计算结果。

补充:赋值“=”和等于“==”

在输入之前,要先定义,顺带说一下,日常的加法运算时,我们通常会写成a+b=c,把结果写在右边,但C语言不同,它是反过来的,c=a+b,表示将a+b得到的结果赋值给c,"赋值”这个含义就相当于你赋予一件事情意义一样,不过它有符号是“=”,不是等于,因为等于有另一个符号“==”对的,是两个=才是等于,如果我们要表示a等于b,用a=b?不是吧,这个的意思是将b的值赋给a,而“a==b”才是我们说的a等于b的表示。

第一步:定义数据——变量和赋值

int a;

int b;

第二步:输入数据——scanf函数

在手机的计算器中我们只需要点一下想要输入的数字便能实现输入,那我们在写C语言时具体要怎么实现,并且让开发计算机的硬件理解我们的操作呢?

C语言中有输入函数,对就是跟printf函数功能相反的函数,叫做scanf函数,也是包含在头文件<stdio.h>里面。

当我们只需要输入一个数据时,具体的语法是,scanf(“%d”,&变量名);有没有发现printf函数和scanf函数都是后面跟着一个括号?是的,没错。C语言规定就是要这样使用函数的。我们发现scanf函数里面还有我们不认识的%d,那这是什么呢?这是表示我们输入的数据是整型,告诉硬件设备我此时要输入一个整型数据,因此在定义变量名的类型时必须是整型类型才对。所以当我们要实现输入两个进行加法的数字时,可以这样表示:

scanf_s(”%d”,&a);

scanf_s(”%d”,&b);

第三步:计算结果

如果我们需要一个新的变量名存储a+b的结果,那么我们可以再定义一个变量:

int c=a+b;

为什么不把定义都放在一起?因为当我们还没进行a和b值的输入时,是无法进行a+b的。

就像下面会报出警告:

警告的意思就是还未输入不能被使用。

第四步:输出结果

还记不记得我们上次用printf函数打印出了“Hello world”

这个黑黑的面板叫“控制台”,那我们也可以打印出计算的结果,就像计算器那样吗?

可以的!

只不过和上次的printf("Hello world")存在不一样的地方,这次我们要打印的不是一行文字(英文或者是中文也好),在C语言中,我们要打印的是一个计算结果,而这个结果的类型是整型类型,记不记得上面说的scanf函数在输入时用scanf("%d",&变量名),而printf在这里也是类似的,用printf(“%d”,a+b);或者printf(“%d”,c);(我们将a+b赋值给c)。

(4)正式演示:

手机计算器:

C语言实现:

注:在控制台中,按下回车表示你要在控制台进行下一步操作。

#include<stdio.h>
int main()
{
	int a;
	int b;
	scanf_s("%d", &a);
	scanf_s("%d", &b);
	int c = a + b;
	printf("%d\n", c);
	return 0;
}

(5)函数封装

既然加法是一个可以被程序化的操作,那么我可不可以将它包装成一个程序,我要用的时候只要启动一下,就像我们只需要点开手机的计算器应用图标就能开始用。当然是可以的。还记不记得我们说main这个主函数即程序的入口是我们自己定义的,那就说明我们还可以定义属于我们的加法函数:Add.

还记得main的是如何被我们定义的吗?

在main的前面有返回类型int 代表这个函数它返回的值是整型类型,而我们的加法现在也是以整数加法为主,所以也是用int,main是指函数名称,那么为了方便标识出函数的功能我们取名Add,后面也需要跟main函数的定义一样,加一个(),由于main函数不需要接受任何参数进行处理,而Add需要进行加法操作,所以里面需要填接受的参数,写成(int a,int b),是的!当我们重新定义一个函数并且要传入一些参数进行处理时,就要对参数进行类型定义。

整合起来就是int Add(int a,int b),是不是感觉少了点什么?对少了{}大括号呀,里面写我们Add函数实现的功能。

int Add(int a, int b)

{

int c = a + b;

printf("%d\n", c);

}

有人说为啥不写return了?如果你需要返回一个值给使用这个函数的主体那么就可以使用return,而我们这里并不需要,我们只需要让函数打印出结果对么?

这样一个函数就被你写好了!如何使用这个函数呢?在C语言中调用一个函数直接Add(a,b)就行了,我们需要在函数调用前先输入要传入的参数是什么,在输入之前就必须先定义对吗?所以就有了下面的:

int main()
{
int a;
int b;
scanf_s("%d", &a);
scanf_s("%d", &b);
Add(a,b);
return 0;
}

延伸一下,我们就可以实现减法函数,毕竟这世界上处理数据不是只需要加法。

整体的代码就是这样写啦!

#include<stdio.h>
int Add(int a, int b)
{
int c = a + b;
printf("%d\n", c);
}
int Sub(int a, int b)
{
int c = a - b;
printf("%d\n", c);
}
int main()
{
int a;
int b;
scanf_s("%d", &a);
scanf_s("%d", &b);
Add(a,b);
Sub(a,b);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值