零基础自学程序设计入门—C语言 第四周

1.逻辑类型和运算

不知道bool的类型,它们仍然是整数,所以只能printf出整数,而不是ture或false

归纳一下运算符的优先级

括号>单目>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符>逗号运算符

条件运算符

条件运算符的优先级高于赋值运算符,但是低于其他运算符

条件运算符是自右向左结合的

逗号运算

2.级联和嵌套的判断

    • 嵌套的if-else

例:输出三个数的最大值

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入三个数:");
    scanf_s("%d %d %d", &a, &b, &c);
    int max = 0;
    if (a > b) {
        if (a > c) {
            max = a;
        }
        else {
            max = c;
        }
    }
    else {
        if (b > c) {
            max = b;
        }
        else {
            max = c;
        }
    }
    printf("三个数中最大值为%d", max);
    return 0;
}

else总是与最近的if相匹配(加了大括号会不一样)

缩进不能暗示if-else的匹配

2.级联的if-else

例:分段函数

#include <stdio.h>
int main()
{
    int x = 0;
    int y = 0;
    printf("请输入数字:");
    scanf_s("%d", &x);
    if (x > 0) {
        y = 2 * x;
    }
    else if (x == 0) {
        y = 0;
    }
    else {
        y = -1;
    }
    printf("值为%d", y);
    return 0;
}

3.多路分支switch-case

例:判断成绩

#include <stdio.h>
int main()
{
    int x = 0;
    printf("请输入分数:");
    scanf_s("%d", &x);
    x /= 10;
    switch (x) {
    case 10:
    case 9:
        printf("你的成绩为A");
        break;
    case 8:
        printf("你的成绩为B");
        break;
    case 7:
        printf("你的成绩为C");
        break;
    case 6:
        printf("你的成绩为D");
        break;
    default:
        printf("你的成绩为E");
        break;
    }
    return 0;
}

4.循环的例子

#include <stdio.h>
int main()
{
    int x = 0;
    int ret = 0;
    scanf_s("%d", &x);
    int t = x;
    while (x > 1) {
        x /= 2;
        ret++;
    }
    printf("log2 of %d is %d", t, ret);
    return 0;
}
#include <stdio.h>
int main()
{
    int x = 0;
    double count = 0;
    double sum = 0;
    printf("请输入数字:");
    scanf_s("%d", &x);
    while (x != -1) {
        sum += x;
        count++;
        printf("请输入数字:");
        scanf_s("%d", &x);
    }
    printf("这些数的平均数为%f", sum / count);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(0));
    int random = rand() % 100;
    int number = 0;
    int count = 0;
    do {
        printf("请输入1到100的数:");
        scanf_s("%d", &number);
        if (number < random) {
            printf("小了\n");
        }
        else if (number > random) {
            printf("大了\n");
        }
        count++;
    } while (number != random);
    printf("恭喜你猜中了,次数为%d次",count);
    return 0;
}

整数逆序

#include <stdio.h>
int main()
{
    int x = 0;
    int f = 0;
    int t = 0;
    scanf_s("%d", &x);
    while (x > 0) {
        f = x % 10;
        t = t * 10 + f;
        x /= 10;
    }
    printf("%d", t);
    return 0;
}

5.常见的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值