03_基础-03

1. 比较运算符
#include 

int main()
{
    // 比较运算符
    int a = 7, b = 8;

    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);
    printf("a == b : %d\n", a == b);
    printf("a != b : %d\n", a != b);

    return 0;
}
2. 逻辑运算符
#include 

int main()
{
    // 逻辑运算符
    // 1. 与 &&
    double score = 35;

    // 如果成绩在60~80之间,就输出“合格”
    if (score >= 60 && score < 80)
    {
        printf("合格!\n");
    }
    else
    {
        printf("不及格!\n");
    }

    // 短路
    int a = 10;
    if (score >= 60 && ++a < 100)
    {
        printf("合格!\n");
    }

    printf("a = %d\n", a);

    printf("\n");

    // 或 ||
    score = 35;

    // 如果成绩小于60 或者 大于80,就输出“成绩过高或过低”
    if (score < 60 || score > 80)
    {
        printf("成绩过高或过低!\n");
    }
    else
    {
        printf("不满足!\n");
    }

    // 短路
    if (score < 60 || ++a < 100)
    {
        printf("短路!\n");
    }

    printf("a = %d\n", a);

    printf("\n");

    // 3. 非
    if (!(score >= 60))
    {
        printf("不及格!\n");
    }

    return 0;
}
3. 赋值运算符
#include 

int main()
{
    int a;
    a = 10;

    const int b = 100;
    // b = 100;

    a += 3;     // a = a + 3;
    a -= b;

    int c = 2, d;
    // d = c = a;     // c = a;    d = c;
    d = c *= a;     // c = c * a;    d = c;

    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
    printf("c = %d\n", d);
    return 0;
}
4. 位运算符
#include 

int main()
{
    int a = 17, b = -12;
    printf("a: %#x\n", a);
    printf("b: %#x\n", b);

    // 位运算符
    // 1. 按位与
    printf("a & b = %#x\n", a & b);
    printf("a & b = %d\n", a & b);

    // 2. 按位或
    printf("a | b = %#x\n", a | b);
    printf("a | b = %d\n", a | b);

    // 3. 按位异或
    printf("a ^ b = %#x\n", a ^ b);
    printf("a ^ b = %d\n", a ^ b);

    // 4. 按位取反
    printf("~a = %#x\n", ~a);
    printf("~a = %d\n", ~a);
    printf("~b = %#x\n", ~b);
    printf("~b = %d\n", ~b);

    // 5. 移位运算
    // 左移
    printf("a << 2 = %#x, %d\n", a << 2, a << 3);
    printf("b << 2 = %#x, %d\n", b << 2, b << 3);
    printf("a >> 3 = %#x, %d\n", a >> 3, a >> 2);
    printf("b >> 3 = %#x, %d\n", b >> 3, b >> 2);

    return 0;
}
5. 三元运算符
#include 

int main()
{
    // 三元运算符
    int a = 10, b = 20;
    int c = (a > b ? 100 : 200);

    printf("c = %d\n", c);

    // 计算两个数中最大的值
    int max = a > b ? a : b;
    printf("max = %d\n", max);

    // 计算三个数中最小的值
    int num1 = 57, num2 = 45, num3 = 32;
    int min1 = num1 > num2 ? num2 : num1; // 首先判断前两个数中最小的
    int min2 = min1 > num3 ? num3 : min1; // 前两个数中最小值跟第三个数再比较

    // 直接用一行代码实现
    int min = (num1 > num2 ? num2 : num1) > num3 ? num3 : (num1 > num2 ? num2 : num1);

    printf("min = %d\n", min2);
    printf("min = %d\n", min);

    return 0;
}
6. if 语句
#include 

int main()
{
    // int age;

    // printf("请输入您的芳龄:");
    // scanf("%d", &age);

    // 1. 单分支
    // if (age < 18)
    // {
    //     printf("未成年人请在家长陪同下访问!\n");
    // }

    // 2. 双分支
    // if (age > 18)
    // {
    //     printf("你年龄大于18,要对自己的行为负责!\n");
    // }
    // else
    // {
    //     printf("你的年龄不大这次放过你了。\n");
    // }

    // 3. 多分支
    int score;
    printf("请输入本次考试成绩:");
    scanf("%d", &score);

    if (score < 60)
    {
        printf("不及格,没有任何奖励!\n");
    }
    else if (score < 80)
    {
        printf("奖励一个肉夹馍!\n");
    }
    else if (score < 90)
    {
        printf("奖励一个ipad!\n");
    }
    else if (score >= 90)
    {
        printf("遥遥领先!\n");
    }
    else
    {
        printf("输入无效!\n");
    }

    printf("程序结束!\n");

    return 0;
}
7. switch 语句
#include 

int main()
{
    char day;
    printf("请输入一个字符(a~d),表示星期(一~四):");
    scanf("%c", &day);

    // 根据day的值进行分支选择
    switch (day)
    {
    case 'a':
        printf("今天星期一!\n");
        break;
    case 'b':
        printf("今天星期二!\n");
        break;
    case 'c':
        printf("今天星期三!\n");
        break;
    case 'd':
        printf("今天星期四!\n");
        break;

    default:
        printf("没有匹配到任何值!\n");
        break;
    }

    printf("程序结束!\n");

    return 0;
}
8. switch 案例 1
#include 

int main()
{
    int month;
    printf("请输入一个月份(1~12):");
    scanf("%d", &month);

    // 用switch case来判断月份值
    switch (month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("本月有31天!\n");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("本月有30天!\n");
        break;
    case 2:
        printf("本月有28或29天!\n");
        break;

    default:
        printf("请输入正确的月份!\n");
        break;
    }
    printf("程序结束!\n");

    return 0;
}
9. switch 案例 2
#include 

int main()
{
    int oilN, oilL;
    printf("请输入油号(92或者95):");
    scanf("%d", &oilN);

    printf("请输入要加的油量:");
    scanf("%d", &oilL);

    double price;

    // 使用switch判断油号
    switch (oilN)
    {
    case 92:
        // 根据油量再来判断具体的单价
        if (oilL >= 40)
            price = 3.5;
        else
            price = 4;
        printf("总金额为:%.2f\n", price * oilL);
        break;

    case 95:
        // 根据油量再来判断具体的单价
        if (oilL >= 40)
            price = 4.5;
        else
            price = 5;
        printf("总金额为:%.2f\n", price * oilL);
        break;

    default:
        printf("本加油站没有你要加的油号!\n");
        break;
    }

    return 0;
}
10. while 语句
#include 

int main()
{
    int a = 10;
    // 基本形式
    while (a > 0)
    {
        printf("OK!%d\n", a);
        a--;
    }

    printf("a = %d\n", a);

    // 案例
    // 1. 我第n天吃了n个韭菜馅的包子
    int num = 0;
    while (num < 10)
    {
        printf("我第%d天吃了%d个韭菜馅的包子!\n", num, num);
        num++;
    }

    printf("num = %d\n", num);

    // 2. 循环输出数字 7~15
    int n = 7;
    while (n <= 15)
    {
        printf("%d\t", n);
        n++;
    }
    printf("\n");
    printf("n = %d\n", n);

    // 3. 倒序输出数字 56 ~ 43
    n = 56;
    while (n >= 43)
    {
        printf("%d\t", n);
        n--;
    }
    printf("\n");
    printf("n = %d\n", n);

    // 4. 输出10(包括10)以内所有的偶数
    int i = 0;
    while (i <= 10)
    {
        if (i % 2 == 0)
        {
            printf("%d\t", i);
        }
        i++;
    }
    printf("\n");
    i = 0;
    while (i <= 10)
    {
        printf("%d\t", i);
        // i = i + 2;
        i += 2;
    }

    printf("\n");
    printf("i = %d\n", i);

    // 5. 计算100以内(包括100)所有数字的和
    i = 1;       // 循环变量
    int sum = 0; // 保存和
    while (i <= 100)
    {
        // sum = sum + i;
        sum += i;
        i++;
    }
    printf("i = %d\n", i);
    printf("sum = %d\n", sum);

    printf("\n\n");

    // 6. 计算10以内所有奇数的乘积
    i = 1;           // 循环变量
    int product = 1; // 保存乘积
    while (i <= 10)
    {
        product *= i;
        i += 2;
    }
    printf("i = %d\n", i);
    printf("product = %d\n", product);

    printf("程序结束!\n");

    return 0;
}

你可能感兴趣的:(06_C语言_01,c语言)