第3天:7天学会C语言,每天5分钟,不需要基础

昨天讲了系统安装,今天可以继续讲编写程序了。

先把昨天的作业给做了,昨天的作业是编写C语言程序输出以下图形:

程序如下:

怎么样?很简单吧?

复习一下,每一行第2个双引号前面的 \n 是什么?对了,是换行。

上述程序就是输出5行信息,或者说输出了5行字符串。

字符串是C语言的专业术语,就是任意信息的意思。

我们学会了输出,今天我们来学习怎样输入。

一、一个简单的加法程序

如果需要做一个简单的加法程序,就是输入两个整数,然后输出它们的和,这样的C语言程序怎么写呢?看:

可能有人又说看不懂了,别着急,听我慢慢道来。

上节课说过,所有的C语句必须放在两个大括号里面,也就是说程序的框架是:

那么大括号里的语句,有4行,也就是4句:

int a, b, c;

scanf("%d%d", &a, &b);

c=a+b;

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

第1句:int a,b,c;

int a, b, c; 是定义了3个整数变量,分别起名为a, b, c,注意句子以分号结束。

有人问什么是变量?你就当变量是房子,定义了3个变量a、b、c,等于买3间房。

那么变量前面的 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); 就是从键盘输入2个整数,第一个整数赋予变量a,第二整数赋予变量b。

那可能有人问我要输入实数怎么办?这是一个好问题。

int a, b, c; 这里定义三个变量a、b、c,它们的数据类型是int,就是整数是买3间房,但这3间房只能是整数房,就是a, b, c只能装整数。

那如果要装实数,就得买实数房。

float d1, d2, d3;

或者double e1, e2, e3;

float和double和int一样,是数据类型。

float单精度实型, double是双精度实型。

float d1, d2, d3; 定义3个实型变量,变量名分别起名为d1, d2, d3。

double e1, e2 ;定义2个实型变量,变量名分别起名为e1, e2。

而输入输出函数中,对应整数的格式控制符是%d,对应float实数的格式控制符是%f,对应double的格式控制符是%lf。

%lf这里f前面的是小写字母l不是数字123的1。

格式控制符:

%d 对应int型的整数

%f 对应单精度实数float型的单精度实数

%lf 对应double型的双精度实数

再次强调:

变量起名规则:以字母或下划线_开头,后面跟数字、字母或下划线。

floatdouble的区别是它们的精度不同,如果不懂暂时不管,咱们主打入门,更深入的知识等你入门后就可以自己去寻求答案了。

而输入输出函数中,对应整数的是%d,对应float实数的是%f,对应double的是%lf。

%lf这里f前面的是小写字母l不是数字123的1。等下给个例子你就明白了。

第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句: printf("%d\n", c);

这里双引号里面出现一个%d,表示将输出一个整数,这个整数是多少,由它对应的数据决定。

这里%d对应的数据是变量c。

如果程序运行时,输入10 20, 则输出结果就是30。

如果程序运行时,输入100 -99, 则输出结果就是1。

二、编写一个程序,输入两个整数,输出和、差、积、商。

拿到题目先别忙着写,要首先考虑以下几个步骤:

第1步:定义多少个变量,变量类型是什么?(要买多少间房来存放数据,房子的类型是整型还是实型)

第2步:输入什么数据?输入多少数据?(scanf里面要多少个%d)

第3步:要做什么处理?

第4步:输出什么结果? (printf里面要多少个&d)

按上述题目,输入两个整数,输出它们的和、差、积、商。

这个程序有个小问题,如果你输入的第2个整数是0, 那么做到除法时会出错,这个问题我们下节课来解决。

另外,C语言的算法运算符有:+ - * / %

加:+

减:-

乘:*

除:/ (注意这个斜杠和换行那个斜杠方向是反的,换行是\n,左上往右下斜)

取余:%

这个取余,比如如果a=10, b=3, 那么c=a%b; c就等于1,10除以3的余数是1。

三、编写一个程序,输入两个实数,输出和。

注意我的变量名是a、b、abc。

运行结果:

我输入1.2和3.4,运行结果是4.600000。对于实数,输出结果默认保留6位小数。

再次强调:输入的两个数据之间以空格隔开。

四、条件语句和关系运算

如果要求编写一个程序,输入两个整数,输出和、差、积、商,注意若出现被0除的情况要避免。

如果没有判断是否有被0除的情况,就是刚才那题,程序是:

我们为了避免出现被0除的情况,可以在除法之前做一个判断:

大家看,在求c4=a/b之前,先判断b是否非0,如果不是0,正常除:c4=a/b;

否则不用除了,直接给c4赋予0。

if(b!=0)是条件语句,

条件语句的格式为:

其中if括号里的b!=0,是一个关系运算,关系运算是判断两个数据的大小或相等关系的,共有6个关系运算是:大于,大于等于,小于,小于等于,等于,不等于,符号为:

> >= < <= == !=

关系运算的结果只有两个:真(C语言里用1代表真)、假(用0代表假)。

如:

3 > 5为假, 10 != 9 为真。

我们可以在程序中加入条件语句来做一些判断。

例:输入一个整数,判断它的奇数还是偶数。如果是奇数,则输出“奇数”,如果它是偶数,则输出“偶数”。程序如下:

运行结果:

如果输入10,则输出结果为:10是偶数。

如果输入5,则输出结果为:5是奇数。

五、小结

今天的课就讲到这里,今天讲了:

1、数据类型int float double

2、格式控制符:

%d 对应int型的整数

%f 对应单精度实数float型的单精度实数

%lf 对应double型的双精度实数

3、变量起名规则:以字母或下划线_开头,后面跟数字、字母或下划线。

4、输入函数scanf( )

5、算法运算符:加( + ) 减( - ) 乘( * ) 除( / ) 取余( % )

6、关系运算符:大于( > ) 大于等于( >= ) 小于( < ) 小于等于( <= ) 等于( == ) 不等于( != )

相关文章

你真的了解scanf吗(scanf-s)

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("<格式化字符串&g...

结合缓冲区谈谈C语言scanf()函数的那些奇奇怪怪行为

scanf() 是从标准输入设备(键盘)读取数据,带有行缓冲区的,这让 scanf() 具有了一些独特的特点,例如可以连续输入、可以输入多余的数据等。反过来,scanf() 也出现了一些奇怪的行为,例...

C语言学习笔记系列—第三章(c语言第二章)

继续第二章之后的学习,上一章学习认识了一些最简单的C程序。第三章将基于C的数据类型进行笔记学习,和之前一样本文还是已一个重新学习角度去认识C语言,所以文中只会引用到需要数据类型介绍。不会像其他C语言教...

7.C语言-选择结构设计(c语言选择结构设计实验报告)

1.IF单分支结构if(表达式) 语句表达式可以是任意表达式,语句可以是一条语句,也可以是复合语句,执行过程,先判断表达式是否为真,如果为真,那么执行语句,如果为假,那么跳过语句执行后面的程序。flo...

C语言程序编写输入任意三个数求它们的平均值?

题目:输入任意三个数求它们的平均值?程序:#include<stdio.h> int main() { int a,b,c,sum; float avg; scanf("%d %...