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