基础
1程序的三种控制结构
1.0 顺序结构
由上到下,外层到内层顺序执行代码的结构
1.1分支结构(选择结构)
定义
依据条件是否满足,有选择的执行相应功能
使用方法
选择结构在OI赛事中常用的即为if else结构
1.1.0单层if
if(条件){执行语句}
if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 }
1.2循环结构
1.2.0 while循环
作用:满足循环条件,执行循环语句
语法:while(循环条件){ 循环语句 }
解释:==只要循环条件的结果为真,就执行循环语句==
1.2.1for循环
作用: 满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }
起始表达式:在循环开始前做的准备操作,仅在第一次循环前执行一次
条件表达式:当达到某一条件时,结束循环
末尾循环体:在循环语句后进行的操作,
依次的执行顺序为:
起始表达式—>(判断条件表达式—>执行循环语句—>执行末尾循环体)【循环】
强制类型转换:
在变量前使用(数据类型)
e.g.:
#include<iostream>
using namespace std;
int main(){
int a = 10;
cout << (double)a <<endl
return 0;
}
1.3 逻辑运算符
作用:用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 如果a为假,则!a为真;如果a为真,则!a为假。 |
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
|| | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例1:逻辑非
//逻辑运算符 --- 非
int main() {
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
system("pause");
return 0;
}
总结:真变假,假变真
示例2:逻辑与
//逻辑运算符 --- 与
int main() {
int a = 10;
int b = 10;
cout << (a && b) << endl;// 1
a = 10;
b = 0;
cout << (a && b) << endl;// 0
a = 0;
b = 0;
cout << (a && b) << endl;// 0
system("pause");
return 0;
}
总结:逻辑与运算总结:同真为真,其余为假
示例3:逻辑或
//逻辑运算符 --- 或
int main() {
int a = 10;
int b = 10;
cout << (a || b) << endl;// 1
a = 10;
b = 0;
cout << (a || b) << endl;// 1
a = 0;
b = 0;
cout << (a || b) << endl;// 0
system("pause");
return 0;
}
逻辑或运算总结:同假为假,其余为真
1.4常用函数
max
用法:max(x,y)
含义:取x和y中的最大值
min
用法:min(x,y)
含义:取x和y中的最小值
sqrt
用法:sqrt(x)
含义:对x进行开方运算
pow
用法:pow(x,y)
含义:x的y次方
swap
用法:swap(x,y)
含义:将A和B的值互换
abs与fabs
用法:abs(x)
fabs(x)
含义:x的绝对值(abs适用于整数,fabs适用于小数)
交换值
swap
用法:swap(x,y)
含义:将A和B的值互换
仅适用于数字
第三变量法
#include<iostream>
using namespace std;
int main()
{
//swap
int a,b;
a =1;
b =0;
swap(a,b);
cout << a << endl << b;
//第三变量法
int c;
c = a;
a = b;
b = c;
16 cout << a << endl << b;
return 0;
}
简记法
temp = x; x=y;y=temp
函数的定义
我们可以自定义一个任意的函数,在自定义函数时,需要提供 函数返回值的数据类型、函数所需参数的数据类型(及名称)
在一个函数A中调用另一个函数B时,可以使用A中的已经赋值的变量作为参数传入B中,也可以直接传入参数,即函数名(参数1,参数2)
子函数的定义
我们以定义一个用于处理两数加和任务的函数sum
为例
//输出的数据类型 函数名 (所需的每个参数类型即名称,用逗号隔开)
//{
// 函数的算法
// return(返回值的名称)
//}
int sum(int cnt,int cnt2)//定义一个输出数据类型为int名为sum的函数,两个int类型的输入值cnt,cnt2
{
int sum1=cnt+cnt2;
return sum1;//返回一个名为sum1的值
}
子函数的调用
我们以在主函数main
里调用上述提到的用于处理两数加和任务的函数sum
为例
int main()
{
int a=1,b=2,t;//声明用于作为参数传入sum函数的两个参数变量,以及输出的结果变量,并对参数变量进行赋值为参数
t=sum(a,b);//对结果变量进行赋值,赋值为调用函数sum,向sum传入a,b两个变量后的返回值
cout << t;//输出结果
return 0;
}
子函数的定义与调用
#include<iostream>
using namespace std;
int sum(int cnt,int cnt2)
{
int sum1=cnt+cnt2;
return sum1;
}
int main()
{
//调用方式1
int a=1,b=1,t;
t=sum(a,b);
cout << t;
return 0;
//调用方式2
int t;
t=sum(1,1);
cout << t ;
//调用方式3
int a=1,b=1;
cout << sum(a,b);
//调用方式4
cout << sum(1,1);
return 0
}
本篇作者:Eason 审校:汐湫