- niehuanlin's blog
流程控制结构 课堂笔记
- 2023-8-11 9:45:20 @
#include <bits/stdc++.h> using namespace std;
int main() {
// 流程控制结构
// 1. 顺序结构
// 交换两个变量
int a, b, c;
cin >> a >> b;
c = a;
a = b;
b = c;
swap(a, b);
cout << a << " " << b << endl;
// 2. 分支结构
// (1) 单分支
// 求绝对值
int n;
cin >> n;
if (n < 0) {
n = -n;
}
cout << n << endl;
// (2) 双分支
// 判断奇偶性
int n;
cin >> n;
if (n % 2 == 0) {
cout << "even" << endl;
} else {
cout << "odd" << endl;
}
// (3) 多分支
// 判断正负性
int n;
cin >> n;
if (n > 0) {
cout << "positive" << endl;
} else if (n < 0) {
cout << "negative" << endl;
} else {
cout << "zero" << endl;
}
// 90 ~ 100 : A // 80 ~ 89 : B // 70 ~ 79 : C // 60 ~ 69 : D // 0 ~ 59 : E
// 判断成绩等级
int n;
cin >> n;
if (n >= 90) {
cout << "A" << endl;
} else if (n >= 80) {
cout << "B" << endl;
} else if (n >= 70) {
cout << "C" << endl;
} else if (n >= 60) {
cout << "D" << endl;
} else {
cout << "E" << endl;
}
// (4) 分支嵌套
// 求三个数的最大值
int a, b, c;
cin >> a >> b >> c;
if (a > b) {
if (a > c) {
cout << a << endl;
} else {
cout << c << endl;
}
} else {
if (b > c) {
cout << b << endl;
} else {
cout << c << endl;
}
}
// 3. 循环结构
// (1) 前置条件循环
int i = 1;
while (i <= 123) {
cout << "我想上天," << "i 的值 :" << i << endl;
i++;
}
// 连续自然数之和
int n, sum = 0;
cin >> n;
int i = 1;
while (i <= n) {
sum = sum + i;
i++;
}
cout << sum << endl;
// (2) 后置条件循环
int i = 1;
do {
cout << "我想上天," << "i 的值 :" << i << endl;
i++;
} while (i <= 123);
// 连续自然数之和
int n, sum = 0;
cin >> n;
int i = 1;
do {
sum += i;
i++;
} while (i <= n);
cout << sum << endl;
// (3) 计数循环
for (int i = 1; i <= 123; i++) {
cout << "我想上天," << "i 的值 :" << i << endl;
}
// 连续自然数之和
int n, sum = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
sum += i;
}
cout << sum << endl;
return 0;
}
// (3) 计数循环
for (int i = 1; i <= 123; i++) {
cout << "我想上天," << "i 的值 :" << i << endl;
}
// 连续自然数之和
int n, sum = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
sum += i;
}
cout << sum << endl;
// (4) 无限循环
int i = 0;
while (true) {
i++;
cout << "i = " << i << endl;
if (i == 100) {
break;
}
}
for (;;) {
}
for (int i = 1; i <= 100; i++) {
if (i == 10) continue; // 跳过
if (i == 20) break; // 终止
cout << "i = " << i << endl;
}
// (5) 循环嵌套
// 矩形输出
int n = 10;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= 2 * n; j++) {
// cout << "[" << i << ", " << j << "] ";
cout << "*" ;
}
cout << endl;
}
// 正三角形输出
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << "*" ;
}
cout << endl;
}
// 倒三角形输出
for (int i = n; i >= 1; i--) {
for (int j = i; j >= 1; j--) {
cout << "*" ;
}
cout << endl;
}
// 或
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
cout << "*" ;
}
cout << endl;
}
// 打擂台求最大值
int n, num, maxNum = INT_MIN;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> num;
if (maxNum < num) {
maxNum = num;
}
}
cout << maxNum << endl;
return 0;
}