算法笔记系列:2.2 顺序结构
2.2.1 赋值表达式
赋值运算符可以通过将其他运算符放在前面来实现赋值操作的简化,例如 n+=2 即 n=n+2
2.2.2 使用scanf 和 printf 输入/输出
- scanf函数的使用
-
格式:scanf(“格式控制”,变量地址)
-
较为特殊的格式符有:long long 为 %lld;double 为 %lf
-
&为取地址运算符 除了字符串(char数组)前不需要之外,其他变量名前都要加上该符号。数组比较特殊,数组名称本身就代表这个数组第一个元素的地址
-
除了%c外,scanf对其他格式符的输入是以空白符(即空格、换行等)为结束判断标志的
#include<stdio.h> int main(){ int a; char c, str[10]; scanf("%d%c%s",&a,&c,str); printf("a=%d,c=%c,str=%s",a,c,str); return 0; } 输入: 1 a bcd 输出: a=1,c= ,str=a
-
- printf函数的使用
-
格式区别于scanf是不再用&了
-
格式符上只有double类型与scanf的不同,在printf中无论是float还是double都是用%f表示
-
%md 使不足m位的int型变量以m位进行右对齐输出,如果不足,其中高位用空格补齐,如果超过则保持不变。
-
%0md 同上,区别在于用0补全不足m位的情况
-
%.mf 可以让浮点数保留m位小数进行输出,规则为四舍六入五成双,一般题目说明保留几位有效数字用的就是这个,如果说是要四舍五入需要用到round函数
-
2.2.3 使用getchar 和putchar输入/输出字符
在某些scanf函数使用不便的场合使用,接收和输出单个字符
2.2.4 注释
-
/**/ 块注释: /* 和 */中间的内容不会被执行
-
//单行注释
2.2.5 typedef
给复杂的数据类型起个别名,增加编码效率,例如:
typedef long long LL;
2.2.6 常用math函数
需要在程序开头加上math.h头文件
-
fabs(double x) 对double类型变量取绝对值
-
floor(double x)和ceil(double x) 分别用于double型变量的向下取整和向上取整,返回类型为double型。负数向下取整则更小
-
pow(double r,double p) 返回 r p r^p rp的值
-
sqrt(double x) 返回double型变量的算术平方根
-
log(double x) 返回double型变量的以自然数为底的对数。C语言中没有对任意底数求对数的函数,所以要牢记换底公式换成自然数为底。换底公式: l o g a b = l o g e b / l o g e a log_a b=log_e b/log_e a logab=logeb/logea
-
sin(double x)、cos(double x)、tan(double x) 参数要求是弧度制的
-
asin(double x)、acos(double x)、atan(double x) 同数学原理
-
round(double x) 将double类型变量四舍五入,返回类型也是double类型,一般配合int进行取整