自学嵌入式DAY4

逗号运算符和逗号表达式(续DAY3)

15级   ”作用:顺序求值运算符    结合方向:自左向右    

当存在连续“,”时     eg:t=(1+5,6-2,3*7);中结果为最后一个表达式结果(即3*7)  【原因:逗号运算符结合方向为自左向右】

一、顺序程序设计

1.1  函数内部可分为两部分:

1)首部:int main(void)     

包含三个信息:①函数返回值  ②函数函数名   ③形参列表

2)函数体:{···}“中内容

包含:①函数声明   ②语句

1.2  具体重要函数

①putchar函数:向终端输出一个字符

     调用时:    eg:putchar(65)   // (实参)      实参与形参必须个数相同、类型匹配(此处为int型)

②getchar函数:输入一个单字符

    int getchar(void);

    调用时:eg:getchar();        getchar表达式为int型的右值

格式化输入与输出

(一)printf函数 (输出)

printf内部    ①代码咋写咋输出     eg:printf(“Hello\n”);输出Hello

                   ②%d(占位符)由下一个参数决定     eg:printf(“%d\n”,c)  则输出c的值

注:①占位符的个数与其后的参数的个数应该是一一对应的

           参数个数 > 占位符个数:多余参数丢失

           占位符个数 > 参数个数:多余占位符取随机数输出

        在printf函数中指定宽度:   eg:printf(“%10d\n”,i);输出i值。 i值不到10格在其前用空格补齐。也可写为“%010d\n”则将空格换为0                                注:只可用空格/0补齐

在八/十六进制中要求输出加前缀(i=1234)

                八进制:printf(“%#0\n”,i);输出02322(表示八进制)

    同理    十六进制:printf(“%#X\n”,i);输出DX4D2

其中①%后写0、u、x、X按无符号整型来解释

       ②%后写e、E表示为小数的科学记数法形式(e.E都可统一按double处理)

       ③%后写f、F都可输出小数(十进制表示法)

            可用 %m.nf 指定输出的宽度和小数点后的有效位数,其中

                 m:输出数据的总宽度占几个字符(总宽度包含小数点本身)   

                 n:小数点后保留的有效数字的数输出时  

            当 m < 实际宽度 则正常输出,因此,书写时m可省略,记为  eg:  “ %.2f ”

                 注:计算机输出会 自动四舍五入

       ④%后写g,G时同样可表示浮点数。当采用g/G时(因为%e,E和%f,F都可表示小数),计算机将选择e/f中较短的一种方式来输出

        ⑤%后写C表示输出字符型%后写S表示输出the const char*<字符串常量>

        ⑥%后写P表示输出地址

        ⑦%后写%表示区分占位符%和实际输出%

       注:默认情况下使用%d会被认为占用4个字节

(二)scanf函数(输入)

       与printf用法类似。eg:scanf(“%d\n”,i);参数要取地址!

       当输入数据有2个/2个以上时,在实际输入中,数和数之间的间隔符可以为:空格、tab、换行三种情况

       注:①scanf函数中参数一定要取地址!!!否则会出现断错误(崩溃)

              ②除了占位符外最好不要加入其它当scanf输入小数时,输入float型和double型时,所用的占位符不同,分别为“%f”和“%lf”。

               二者之间不可替换原因:scanf需要取地址。导到scanf无法通过所传地址窥探f到底占几个字节。

              输入short型占位符为“%hd”;输入long型占位符为“%ld”。

       scanf函数也可以指定宽度。但仅适用于int型。在用scanf输入浮点型时,禁止使用指定的精度/宽度的做法!

另:sqrt——平方根函数

注:①使用sqrt时,需#include ②编译时加“-lm”,即gce main.c-lm

       pow—计算x的外次幂double pow(double x,double y);eg:52可写为double pow(2,0,5);

scanf函数底层逻辑:

结果会一直持续输出 error!   可用getchar函数来进行修正!如下图:

修正后结果示例:

以上问题考虑了用户是否输入正确的问题。

例题:

程序示例:

 结果:

 该程序未考虑:①输入是否正确问题,如考虑,可将上题用getchar进行修正后的程序部分套用

                          ②三角形是否满足构成三角形的条件问题,在后续学习选择结构中将考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值