1.scanf的使用
注意:
1.scanf中出现非输入控制符,需要从终端原封不动输入,否则从不匹配的位置开始不再向后读取
2.scanf除了%s外后面必须加&符号
3.scanf除了%c形式外均无法接收' '和'\n'字符
4.scanf中严禁出现\n
5.scanf使用_%c形式,接收一个非' '和'\n'的字符
①scanf接收非输入控制符
②scanf接收输入控制符
%d 按照int类型接收数据
%f 按照float类型接收数据
%lf 按照double类型接收数据
%c 按照char类型接收数据(可以接收' '和'\n')
_%c 按照char类型接收数据(无法接收' '和'\n')
%s 按照字符串类型接收
③scanf接收多个输入控制符
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
2.gets 和 puts
- gets:从终端接收一串字符串
- gets会去掉从终端接收的\n字符
- puts:在终端打印一行字符串
- puts会多打印一个\n字符3.
3. 流程控制
1.顺序结构
从main函数第一句开始执行, 执行到main函数结束
2.分支结构
①判断时使用分支语句
②同类型执行不同操作时使用分支语句
Ⅰ.简单分支结构
if (逻辑表达式)
{
语句块1;
}
else
{
语句块2;
}
注意:
1.if后面必须加条件,else不能加条件
2.if可以脱离else单独使用,但是else不能脱离if单独使用
3.if和else不加大括号默认控制1句代码
Ⅱ.阶梯分支结构
if (表达式1)
{
语句块1;
}
else if (表达式2)
{
语句块2;
}
else if (表达式3)
{
语句块3;
}
else
{
语句块4;
}
Ⅲ.嵌套分支结构
if (表达式1)
{
if (表达式2)
{
if (表达式3)
{
}
}
}
最多嵌套3 - 5层,深层次嵌套会影响代码的可读性
Ⅳ.逻辑表达式
1.关系运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
2.逻辑运算符
&& 逻辑与 一假为假,全真为真
|| 逻辑或 一真为真,全假为假
! 逻辑非 真取非得假、假取非得真
截断特性:
逻辑与左边为假值,右边不再计算
逻辑或左边为真值,右边不再计算
Ⅴ.三目运算符:
逻辑表达式?表达式1:表达式2;
C语言中运算符结合方向:
1.大部分自左至右
2.单目运算符 自右至左
赋值运算符 自右至左
三目运算符 自右至左