- 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;
}