printf("%.nlf", a); 保留n位小数
除法: 左右两边的数字至少有一个
是浮点数,结果才是浮点数。其他的
结果都是整数。
ex:
2/4=0, 2/4.0=0.5,
2.0/4=0.5,2.0/4.0=0.5
c++判断等于 ==, 赋值符号 =
求三个数的最大值 max(a, max(b,c))
求三个数的最小值 min(a, min(b,c))
char 单个字符, 用单引号括起来 '', char c = 'a';
string 字符串,多个字符,用双引号括起来 "" , string s = "abc";
求余数: 已知x秒,求小时 x / 3600, 求分钟 x%3600/60,求秒数 m%3600%60
循环:
for (int i = 1; i <= n; i ++) //1 - n, 步长1
for (int i = n; i >= 1; i --) //n - 1,步长-1
break 结束循环, continue 继续循环, return 0; 结束程序(大跳)
if 条件判断,只执行一次
while 条件循环,执行多次,直到条件成立
枚举: 确认要枚举的元素,确认每个元素的枚举范围,确保不超时。
写出符合题意得条件,筛选出正确得答案。
//整数反转算法,负数也适用
int ans = 0;
while (n != 0)
{
ans = ans * 10 + n % 10;
n /= 10;
}
//最大公约数
r = a % b;
while (r != 0)
{
a = b;
b = r;
r = a % b;
}
一维数组:
int a[5]; //定义里面都是整形变量的数组 a
其中,a是一维数组的数组名,该数组有5个元素,依次表示为:
a[0],a[1],a[2],a[3],a[4] //引用数组元素
注意:a[5]不属于该数组的空间范围。严禁下标越界!!!
但是由于习惯问题,一般我们会从1号元素开始使用,所以一般我们定义数组时会比范围稍微大一些。
一维数组输入:
for (int i = 1; i <= n; i ++)
cin >> a[i];
二维数组:
维数组就是用一个名字后面跟着两个数字,分别表示数组的行和列。二维数组就是一个矩阵——长方形方阵,有行有列。
定义:
数据类型 数组名[常量表达式1] [常量表达式2]
例如:int a[5][9]; //定义一个5行9列的二维整型数组a
如果需要使用二维数组中的某个元素,就需要找到具体位置:
<数组名>[行下标][列下标]
如:a[1][2]
表示二维数组a中的第2行第3列元素。
注意事项:
和一维数组一样,行下标和列下标都是从0开始编号的。
每个下标表达式取值不应超出下标所指定的范围。
例如,设有定义:int a[2][3];则表示a是2行3列的二维数组,共有2*3=6个元素,它们是:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
因此可以看成一个矩阵(表格),a[1][2]即表示第2行第3列的元素,而a[2][3]就已经越界了。
二维数组输入:
int a[10][10]; //定义一个10行10列的二维数组 a
for(int i=1;i<=3;i++) //控制行下标
{
for(int j=1;j<=4;j++) //控制列下标
cin>>a[i][j];
}