c语言.2

 

bd3cb8e4394f4e9d87b0c75635493400.jpg

 1.变量

1) 变量定义的一般形式:类型名称int+变量名称price+;

eg:int price;

     int amount;

     int price,amount;(同时定义两个变量)

2)变量的名字:标识符

①基本原则:由字母,数字,下划线组成

②不能以数字开头

③不能使用c语言的关键字(保留字)

7de8028dae0b412a93aaa207cf974800.jpg

 不用背,编译之后有错误提示,改一改就可以了

2.赋值运算符  =

  赋值:把=右边的值交给=左边的变量(标识符)

          int price =0

  定义变量时的赋值叫做初始化,=右侧为初始值

  赋值是动作,a=b 即 “令”a这个变量的值和b这个变量的值相等(把b的值给a)

  不是非得初始化(在定义变量时赋值)但是必须在该变量b出现在=右边之前(就是在把b的值交给另一个变量a  之前,对b进行一次赋值,如下)(如果在用b之前,没有对b赋值,那就b在内存的位置附近有什么就输出什么578486464)b22ba18bc5684fef8684360f822060f1.jpg

2ac0d603593643a8ad5439d9159ca91a.jpg 

 同时对多个变量初始化,只能一个一个变量地赋值,做不到一下子给所有变量赋同一个值

eg:int price=0,amount=100

含有运算符的式子叫表达式

3.变量类型

所有变量使用之前必须定义或声明它的数据类型(如int price=123)

数据类型(变量类型)表示在变量中可以存放什么类型的数据,变量中只能存放指定类型数据,程序运行过程中不能改变变量类型。

4.第2个变量

C99,可以在程序的任意地方定义变量c,只需要保证 定义这步 出现在变量c使用(c=123或者b=c)之前

ANSI C,所有变量的定义必须在程序最前面

5.读整数scanf

printf是用来输出的函数

scanf是用来输入的函数(f,format是格式化的意思)

scanf(" ")  “”中的内容叫做字符串7ce8e90a433e48ed9e34739282d66ba3.jpg

 在scanf里面,要让它读取变量,必须在变量前面加上&

eg:scanf(“%d”,&price)

出现在“”中的字符串都是要读取的东西,%d表示读取整数

scanf(“%d %d”,&a,&b)

printf(“%d %d\n”,a,b)

如果字符串是%d %d正常的直接输入1 2即可输出1 2

如果是%d,%d,需要输入1,2

如果是%d %d (后面加了个空格)需要输入1 2+一个空格(随便一个1代替空格,1不会被输出 )(输入回车有没用必须要有空格否则报错)

如果是%d %d\n(\n输出为回车,换行的效果)

需要输入(同空格)1 2

                                a

如果是price%d %d,需要输入price 1 2

出现在scanf字符串里的东西是他一定要让你输入的东西,而不是他要给你看的东西

6.常量VS变量

常量:不变的量。ed64584d0f814cc08b6a235fe013c565.jpg

ce63cee87bea4ab7aa3e1ba20b2475f8.jpg整型int=115861b43ed074d6aa2771fe74b693047.jpg 实型常量:实数,浮点数float,double

float b=2.5

(字符型常量char c=‘c’)

 直接量(literal),就是程序中直接使用的数据值

eg: 12//数字,1.2//小数,'hh'//字符串,true//布尔值false//另一个布尔值

/javascript/gi //正则表达式直接量(用作

模式匹配), null//空,{x:1,y:2]//对象,[1,2,3,4,5,]//数组

定义常量(c99):

e5bfd6678e5643cbae52e14db3ea1b84.jpg

 定义常量好处:理解100是什么(莫名其妙的数字被称为magic number);修改程序时候容易找到

const(不变的)为修饰符,const int中的const属性为一旦int后变量被初始化(变量使用前肯定要初始化的,c99和ANSI C规定位置不同而已,见第4条第2个变量),就不能修改了,简而言之,const int AMOUNT=100就是定义常量同时初始化的意思(一般加修饰const的变量所有字母大写)

如果你试图对常量做修改,把它放在赋值运算符=的左边,就会被编译器发现指出为一个错误。(即不可再次赋值)

eg:AMOUNT=123(任意非初始值数字)即报错

7.让用户输入变量AMOUNT的值,而不是使用固定的初始值,怎么办?

去掉const,AMOUNT改为小写,变量正常初始化没问题,下面加上printf(“请输入票面”);

scanf(“%d”,&amount);表示让用户输入部分,程序如下:e4a61a66d745461eb1065ed366bfcec7.jpg

 8.一个scanf如何读取多个变量?

“”中有几个%d就可以读几个变量,程序如下:1380a191d955435cb23cbb869c49e416.jpg

 第一个printf是输出提示用户的话

scanf用来读取用户输入值(只要在终端没有输入两个可以计算的数,按无数回车也没反应,输入之后按回车,程序继续运行)

第二个printf是输出计算数值。

如果没有输入规定数据类型int数字,而是输入字符串,就会内存附近有什么给什么,出现乱码七糟的数字计算结果

上面是客户输入并得到计算结果,下面对比程序员自己输入程序并得到计算结果

59d7bfdb1b824d3c8d3229d9b028f4dc.jpg

9.浮点数(小数点可以浮动的数,是计算机内部表达非整数,包含分数和无理数的一种方式;另一种表达方式叫做定点数。人们借用浮点数这个词来表达所有带小数点的数。)

整数就是不带小数点的数,整数的运算结果只能是整数,运算过程中出现的小数部分会被清零

b418e4c691b04073b9aaaf42881cc385.jpg

 当把浮点数和整数放到一起运算时,c会将整数转换为浮点数,然后进行浮点数的运算。

想要得到正确结果的改法一:10改为10.0

%d改为%fbd0f6ddce4054811816d5ea4676803c9.jpg

 

改法二:把变量的数据类型从int改为double

输入或输出整数,即在scanf和printf里面都要%d

输入浮点数,scanf里用%lf

输出浮点数,printf里用%f

人们用double来表示浮点数类型(双精度浮点数的第一个单词),float表示单精度浮点数。

fc4100a8bebb4618b162d039d359c747.jpg

 计算题:

10/3.0*3=3.333333*3=10.0

10/3*3.0=3*3.0=9.0在第一步计算过程中,小数点后面部分已经被抹掉

 

     

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值