// ===== CodeLab: C 运算符与表达式 =====
// 来源: https://aoerliang.dpdns.org/articles/c-operators
// 以下代码片段按文章出现顺序拼接, 共 4 段

// ----- 片段 1 (c) -----
#include <stdio.h>

int main(void) {
    int a = 10, b = 3;
    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b);    // 整数除法,结果为 3
    printf("a %% b = %d\n", a % b);   // 取余,结果为 1
    printf("10.0 / 3 = %.2f\n", 10.0 / 3);  // 浮点除法
    return 0;
}

// ----- 片段 2 (c) -----
#include <stdio.h>

int main(void) {
    int x = 10;
    x += 5;   // x = 15
    x *= 2;   // x = 30
    x -= 8;   // x = 22
    x /= 2;   // x = 11
    printf("x = %d\n", x);
    return 0;
}

// ----- 片段 3 (c) -----
#include <stdio.h>

int main(void) {
    int x = 5, y = 3;  // 二进制:0101 & 0011
    printf("x & y = %d\n", x & y);    // 按位与:1
    printf("x | y = %d\n", x | y);    // 按位或:7
    printf("x ^ y = %d\n", x ^ y);    // 按位异或:6
    printf("x << 1 = %d\n", x << 1);  // 左移一位:10
    printf("x >> 1 = %d\n", x >> 1);  // 右移一位:2
    return 0;
}

// ----- 片段 4 (c) -----
#include <stdio.h>

int main(void) {
    int i = 3;
    printf("%d\n", i++);   // 打印 3,然后 i 变成 4
    printf("%d\n", ++i);   // i 先变成 5,再打印 5

    int score = 75;
    char *result = score >= 60 ? "及格" : "不及格";
    printf("%s\n", result);
    return 0;
}
