表达式
由运算符和运算对象组成的式子称为表达式
(1)表达式的运算对象可以是常量,变量,函数调用和嵌套的表达式
12+a+max(x,y)+(x+y);
(2)表达式的计算是按步骤进行的,成为表达式求值顺序
x>y&&x<z //先计算x>y,若结果为假则运算结束,否则继续计算x<z
(3)表达式中的数据对象应一致
(4)每个表达式的结果除了确定的值之外,还应有确定的数据类型
循环
break语句的作用是结束switch语句和循环语句的运行,转到后续语句
判断一个数m是否是素数
#include<iostream>
using namespace std;
int main() {
int i, m;
cin >> m;
for (i = 2; i <= m; i++) {
if (m%i == 0)
break;
}
if (m == i)
cout << "yes" << endl;
else
cout << "no" << endl;
system("pause");
return 0;
}
continue语句的作用是在循环体中结束本次循环,直接进入下一次循环,只能用于循环语句(while,do,for)中,不可单独使用。
在while循环语句和do-while循环语句中遇到continue,忽略continue之后的语句,调到while小括号中进行判断,在for循环语句中遇到continue,跳到表达式3进行判断。
打印九九乘法表
#include<iostream>
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << j << "x" << i << "=" << i*j << " ";
}
cout << endl;
}
system("pause");
return 0;
}
求π的近似值,π/4≈1-1/3+1/5-1/7+1/9,直到最后一项的绝对值小于1e-7为止
#include<iostream>
#include<cmath>
using namespace std;
int main() {
double a = 1, b = 1, c = 1, pi = 0;
while (fabs(c) > 1e-7) {
pi += c;
a = -a; //a表示分子1,-1,1,-1……
b += 2; //b表示分母(依次加2)
c = a / b; //c表示第n项分数
}
cout << "PI=" << pi * 4 << endl;
system("pause");
return 0;
}
fabs函数是一个求绝对值的函数,要包含头文件cmath
1.利用循环实现枚举算法
枚举法,也称为穷举法,是指从可能的集合中一一枚举各个元素,用给定的约束条件判断哪些是无用的,那些是有用的。能使命题成立者即为问题的解;
利用枚举法求解问题的基本思路为:
(1)确定枚举对象、枚举范围和判定条件
(2)一一枚举可能的解,验证是否是问题的解
百元买百鸡问题,有人有一百元钱,打算买一百只鸡。公鸡一只5元,母鸡一只3元,小鸡3只1元,求应各买多少?
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int x, y, z;
for (x = 0; x <= 20; x++) {
for (y = 0; y <= 33; y++) {
for (z = 0; z <= 100; z++) {
if (x + y + z == 100 && x * 5 + y * 3 + z / 3 == 100)
cout << "公鸡:" << x << "只," << "母鸡:" << y << "只," << "小鸡" << z << "只" << endl;
}
}
}
system("pause");
return 0;
}
2.利用循环实现迭代算法
迭代法是一种不断用变量的旧值递推新值的求解方法
#include<iostream>
using namespace std;
int main() {
int fn = 0, f1 = 0, f2 = 1, i;
for (i = 1; i <= 40; i++) {
fn = f1 + f2; //迭代关系式
f1 = f2;
f2 = fn; //f1和f2迭代前进
cout << fn << " ";
}
system("pause");
return 0;
}