昨天讲了系统安装,今天可以继续讲编写程序了。
昨日的作业要先去做下, 昨日这个作业, 是去编写C语言程序, 然后输出以下这样的图形。
程序如下:
怎么样?很简单吧?
去重新复习一回, 每一行当中第二个双引号的前面的那个 \n 究竟是什么, 没错, 它是换行。
上述程序就是输出5行信息,或者说输出了5行字符串。
字符串是C语言的专业术语,就是任意信息的意思。
我们学会了输出,今天我们来学习怎样输入。
一、一个简单的加法程序
要是打算去做一个简易的加法程序, 也就是要输入两个整数, 接着把它们的和给输出, 如此这般的C语言程序该如何去写呢, 瞧:
可能有人又说看不懂了,别着急,听我慢慢道来。
上节课提及, 全部的C语句都得放置于两个大括号之内, 这意味着程序的架构是:
那么大括号里的语句,有4行,也就是4句:
int a, b, c;
scanf("%d%d", &a, &b);
c=a+b;
("%d\n", c);
第1句:int a,b,c;
定义了3个整数变量, 这3个变量分别被起名为a, b, c, 此语句是以像这样的分号结束的, 即int a, b, c;。
有人询问什么是变量, 你把变量视为房子, 定义了三个变量, 分别是a、b、c, 这就等同于购买了三间房。
那么变量前面的 int是什么意思?
int是数据类型,int代表整型,整数。
int a,b,c; 定义3个整型变量。
好比我购置了3间房, 房名分别称作a、b、c, 这3间房仅能用来存放整数。
留意: 变量取名的规则是, 以字母或者下划线_作为起始部位, 随后连着数字、字母或者下划线。
比如以下是合法的变量名:
a a123 _123 _a1 abc
不合法的变量名是:
1a, a#b 123 a-bc-d
第2句: scanf("%d%d", &a, &b);
那用于输入的scanf函数, 它指的是要从键盘那里输入2该整数, 可怎么去晓得是输入2个整数而并非3个呢。
因为scanf的双引号里面,有2个%d。
2个%d,代表输入2个整数,%d是整数。
注意:%d是格式控制符,对应整数。
那儿双引号的后面存在着一个逗号, 接着出现了&a, 还有&b, 这表示, 在输入的2个整数里, 第1个整数会被给予到变量a, 第2个整数会被给予到变量b。
我这里说“给到”是大白话,严格来说是“赋予”。
将scanf("%d%d", &a, &b); 用于从键盘输入两个整数, 把第一个输入的整数给予变量a, 把第二个输入的整数给予变量b。
那可能有人问我要输入实数怎么办?这是一个好问题。
定义了三个变量, 分别是a, b, c, 这三个变量的数据类型为int, int即整数, 意味着这所买的三间房只能是整数房且这三间房只能用来装整数, 也就是a, b, c只能容纳整数。
那如果要装实数,就得买实数房。
float d1, d2, d3;
或者 e1, e2, e3;
float和和int一样,是数据类型。
float单精度实型, 是双精度实型。
实型变量d1, 被定义出来, 实型变量d2, 也被定义出来, 实型变量d3, 同样被定义出来, 这三个实型变量, 变量名分别是d1, d2, d3。
设定两个实型变量, 这两个变量的名字分别被起作e1, e2 ;定义2个实型变量, 变量名分别起名为e1, e2。
且在输入输出之类的函数里头, 那针对整数起对应作用的格式控制符乃是%d, 而针对float这种实数起到对应作用的格式控制符为%f, 还有起到对应作用的格式控制符是%lf。
%lf这里f前面的是小写字母l不是数字123的1。
格式控制符:
%d 对应int型的整数
%f 对应单精度实数float型的单精度实数
%lf 对应型的双精度实数
再次强调:
变量起名有着这样的规则, 它要以字母或者下划线_开始, 之后跟着数字, 或者跟着字母, 又或者跟着下划线。
单精度浮点型float和别的类型之间的区别在于它们各自的精度是不一样的, 要是不了解的话暂时先不去管它, 咱们主要是侧重于入门这块, 而有关更深入的知识等你入门之后就能够自己去探寻获得答案了。
在输入输出函数里头, 针对整数的是%d, 针对float实数的是%f, 与之对应的是%lf。
百分之低位格式符, 这里格式符中f前面的字符, 是小写的拉丁字母l, 并非数字一二三当中的一。一下, 会给出一个例子, 如此, 你便会明了。
第3句: c=a+b;
这句很简单,就是将a和b的值相加,结果赋予变量c。
这边你或许又要发问了, 这a以及b的值究竟是多少? 是100、200, 还是23、89, 又或者是其他的数?
a和b的值由你在程序运行时输入,你输入多少就是多少。
假设你键入10 20, (留意键入之际两个数字之间得用空格来分隔), 如此一来a为10, b为20。
如果你输入20 5, 则a就是20,b就是5。
第4句: ("%d\n", c);
在这里面, 双引号之中出现了一个%d, 这意味着将会输出一个整数,而这个整数究竟是多少呢, 是由它所对应的数据来决定的。
这里%d对应的数据是变量c。
如果程序运行时,输入10 20, 则输出结果就是30。
如果程序运行时,输入100 -99, 则输出结果就是1。
二、编写一个程序,输入两个整数,输出和、差、积、商。
拿到题目先别忙着写,要首先考虑以下几个步骤:
首先进行第1步, 针对此来定义变量, 变量的数量是多少, 变量的类型又是什么, 这里涉及到要买数量多少的房间用于存放数据, 那么, 房间的类型究竟是整型还是实型?
第2步: 需要输入怎样的数据? 输入的数据量是多少呢? (scanf当中应该有几个%d)
第3步:要做什么处理?
第4步:输出什么结果? (里面要多少个&d)
按上述题目,输入两个整数,输出它们的和、差、积、商。
这个程序存在一个小问题, 倘若你所输入的第二个整数为0, 那么在进行除法运算的时候便会出现错误, 而这个问题我们将会在下节课予以解决。
另外,C语言的算法运算符有:+ - * / %
加:+
减:-
乘:*
除去: / (留意这个斜杠, 和换行所用斜杠方向相反, 换行是\n, 从左上朝着右下倾斜)。
取余:%
此取余操作, 举例来说, 设a若是等于10, 而b等于3, 那么c将等于a对b取余的结果;c会是1, 因为10除以3所得到的余数是1。
三、编写一个程序,输入两个实数,输出和。
注意我的变量名是a、b、abc。
运行结果:
我将1.2以及3.4进行输入, 其运行之后所呈现的结果是4., 针对于实数而言, 那份输出的结果在默认的状况下会保留6位小数。
再次强调:输入的两个数据之间以空格隔开。
四、条件语句和关系运算
要是规定去编写一个程序, 这个程序, 要输入两个整数, 之后, 要去输出和、差、积、商, 一定要注意, 要是出现被0除这种情况的话, 是要避免掉的。
如果没有判断是否有被0除的情况,就是刚才那题,程序是:
我们为了避免出现被0除的情况,可以在除法之前做一个判断:
来看, 在求取c4等于a除以b之前, 要先去判定b是不是并非0, 要是b不是0的话, 那就按照正常的除法来计算, 也就是c4等于a除以b。
否则不用除了,直接给c4赋予0。
if(b!=0)是条件语句,
条件语句的格式为:
这里面, if括号当中的b不等于0, 这属于一个关系运算, 有关于关系运算, 它是用于判断两个数据之间大小或者相等关系的, 总共存在6个关系运算, 分别是: 大于, 大于等于, 小于, 小于等于, 等于, 不等于,其符号是:
> >= < 5为假, 10 != 9 为真。
我们可以在程序中加入条件语句来做一些判断。
输入一个整数, 去判别它究竟是奇数还是偶数。假若此数是奇数, 那就输出“奇数”, 要是该数为偶数, 便输出“偶数”。程序如下:
运行结果:
如果输入10,则输出结果为:10是偶数。
如果输入5,则输出结果为:5是奇数。
五、小结
今天的课就讲到这里,今天讲了:
1、数据类型int float
2、格式控制符:
%d 对应int型的整数
%f 对应单精度实数float型的单精度实数
%lf 对应型的双精度实数
3、变量起名的规则是, 要以字母或者下划线_开始, 之后紧接着可跟数字, 或者能够跟字母, 又或者可以跟下划线。
4、输入函数scanf( )
5、进行运算操作时, 用于计算的符号有, 加法运算所使用的正号, 减法运算所运用的负号, 乘法运算采用的星号, 除法运算选取的斜杠, 还有余数运算中应用的百分号。
6、关系运算符, 有大于这个符号(>), 还有大于等于这个符号(>=), 以及小于这个符号(<), 另外还有小于等于这个符号(<=)。