【重拾C语言】三、分支程序设计(双分支和单分支程序设计、逻辑判断、多分支程序设计、枚举类型表示;典型例题:判断闰年和求一元二次方程根)

目录

前言

三、分支程序设计

[3.1 判断成绩是否及格------双分支程序设计](#3.1 判断成绩是否及格——双分支程序设计)

[3.2 成绩加上获奖信息---单分支程序设计](#3.2 成绩加上获奖信息—单分支程序设计)

[3.3 逻辑判断------布尔类型](#3.3 逻辑判断——布尔类型)

[3.4 获奖分等级------多分支程序设计](#3.4 获奖分等级——多分支程序设计)

[3.5 表示汽车种类------枚举类型](#3.5 表示汽车种类——枚举类型)

[3.6 例题](#3.6 例题)

[3.6.1 例题------判断某个年份是否闰年](#3.6.1 例题——判断某个年份是否闰年)

[3.6.2 例题------求一元二次方程根](#3.6.2 例题——求一元二次方程根)


前言

ChatGPT

C语言是一种通用的、过程式的计算机编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代初开发。它被设计成一种简单、高效和可移植的语言,用于系统级编程和应用程序开发。

以下是C语言的一些主要特点:

  1. 结构化编程:C语言支持结构化编程,它提供了顺序执行、条件语句(如if-else和switch)和循环结构(如for和while),使程序更易于阅读、理解和维护。

  2. 中级语言:C语言同时具备高级语言和低级语言的特点。它提供了丰富的控制结构和操作符,可以直接访问内存和硬件,并且允许程序员进行底层的操作,如位操作和指针运算。

  3. 可移植性:C语言编写的程序具有很高的可移植性,因为它的语法和特性在不同的计算机系统上基本保持一致。这使得程序可以在不同的平台上进行编译和执行,而无需对代码进行太多的修改。

  4. 强大的标准库:C语言提供了一个丰富的标准库,其中包含了各种函数和工具,用于处理输入输出、字符串操作、内存管理、数学运算等。这些函数可以提高程序开发的效率,并且可以跨平台使用。

  5. 面向系统编程:由于C语言具有直接访问内存和硬件的能力,它经常用于开发操作系统、嵌入式系统和驱动程序等底层软件。C语言还提供了位操作和指针等特性,使得程序员可以更好地控制系统资源。

  6. 扩展性:C语言允许程序员编写自定义的函数和库,以扩展语言的功能。这使得C语言非常适合大型项目的开发,可以将代码组织成模块化的结构,并通过函数调用进行复用。

尽管C语言相对较为底层,但它仍然是一种非常重要和广泛应用的编程语言。它为程序员提供了强大的控制能力和性能优势,并且在各种领域,如系统编程、嵌入式开发、游戏开发等方面都得到了广泛应用。许多现代编程语言,如C++、Java和Python,都受到了C语言的影响,并在其基础上进行了扩展和改进。

三、分支程序设计

3.1 判断成绩是否及格------双分支程序设计

双分支程序设计是一种基本的条件控制结构,用于根据条件结果执行不同的代码路径。在C语言中,可以使用if-else语句实现双分支程序设计来判断学生成绩是否及格。如果学生成绩达到及格标准,执行一组代码;否则,执行另一组代码。

cpp 复制代码
#include <stdio.h>

int main() {
    int score = 75;
    if (score >= 60) {
        printf("成绩及格\n");
    } else {
        printf("成绩不及格\n");
    }
    return 0;
}

输出:

bash 复制代码
成绩及格

3.2 成绩加上获奖信息---单分支程序设计

单分支程序设计是另一种条件控制结构,用于根据条件结果执行不同的代码路径。在这种情况下,可以使用单分支程序设计来判断学生成绩,并在成绩达到一定条件时添加获奖信息。如果学生成绩满足特定标准,可以执行一组代码来添加获奖信息。

cpp 复制代码
#include <stdio.h>

int main() {
    int score;
    char award;

    printf("请输入成绩:");
    scanf("%d", &score);
    getchar(); // 消耗输入缓冲区中的换行符

    printf("请输入获奖信息:");
    scanf("%c", &award);

    if (award == 'Y') {
        score += 10;
    }

    printf("最终得分:%d\n", score);

    return 0;
}

输出:

3.3 逻辑判断------布尔类型

C语言中的逻辑判断可以使用布尔类型来表示。在C语言中,布尔类型的值可以是true或false。C语言中没有内置的布尔类型,但可以使用整数类型来表示布尔值,其中0表示false,非零值表示true。

cpp 复制代码
#include <stdbool.h>
#include <stdio.h>

int main() {
    bool isTrue = true;

    if (isTrue) {
        printf("条件为真\n");
    } else {
        printf("条件为假\n");
    }

    return 0;
}

输出:

bash 复制代码
条件为真

3.4 获奖分等级------多分支程序设计

多分支程序设计是一种条件控制结构,用于根据不同的条件结果执行不同的代码路径。在C语言中,可以使用if-else if-else语句实现多分支程序设计,根据获奖分数的不同等级执行相应的代码。

cpp 复制代码
#include <stdio.h>

int main() {
    int score = 75;
    if (score >= 90) {
        printf("一等奖\n");
    } else if (score >= 80) {
        printf("二等奖\n");
    } else if (score >= 70) {
        printf("三等奖\n");
    } else {
        printf("未获奖\n");
    }

    return 0;
}

3.5 表示汽车种类------枚举类型

枚举类型是一种特殊的数据类型,用于定义一组具名的常量值。在表示汽车种类的情况下,可以使用枚举类型来定义不同的汽车种类并为其分配特定的常量值。这样可以在程序中使用这些枚举值来表示不同的汽车种类,并进行相应的操作或判断。

cpp 复制代码
#include <stdio.h>

int main() {
    enum CarType {
        SEDAN,
        SUV,
        HATCHBACK
    };

    enum CarType myCar = SUV;

    if (myCar == SUV) {
        printf("这辆车是SUV类型\n");
    }
}

3.6 例题

3.6.1 例题------判断某个年份是否闰年

cpp 复制代码
#include <stdio.h>

int main() {
    int year;

    printf("请输入年份: ");
    scanf("%d", &year);

    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        printf("%d年是闰年\n", year);
    } else {
        printf("%d年不是闰年\n", year);
    }

    return 0;
}

3.6.2 例题------求一元二次方程根

cpp 复制代码
#include <stdio.h>
#include <math.h>

int main() {
    double a, b, c;
    double discriminant, realPart, imaginaryPart;

    printf("请输入一元二次方程的系数:\n");
    printf("a: ");
    scanf("%lf", &a);
    printf("b: ");
    scanf("%lf", &b);
    printf("c: ");
    scanf("%lf", &c);

    discriminant = b * b - 4 * a * c;

    if (discriminant > 0) {
        // 有两个实数根
        double root1 = (-b + sqrt(discriminant)) / (2 * a);
        double root2 = (-b - sqrt(discriminant)) / (2 * a);
        printf("方程的根为:%.2lf 和 %.2lf\n", root1, root2);
    } else if (discriminant == 0) {
        // 有一个实数根
        double root = -b / (2 * a);
        printf("方程的根为:%.2lf\n", root);
    } else {
        // 有两个虚数根
        realPart = -b / (2 * a);
        imaginaryPart = sqrt(-discriminant) / (2 * a);
        printf("方程的根为:%.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
    }

    return 0;
}
相关推荐
迷迭所归处28 分钟前
C++ —— 以真我之名 如飞花般绚丽 - 智能指针
开发语言·c++
Code哈哈笑33 分钟前
【Java 学习】构造器、static静态变量、static静态方法、static构造器、
java·开发语言·学习
是老余34 分钟前
Java三大特性:封装、继承、多态【详解】
java·开发语言
小馒头学python36 分钟前
【Python爬虫五十个小案例】爬取豆瓣电影Top250
开发语言·爬虫·python
尘浮生1 小时前
Java项目实战II基于微信小程序的南宁周边乡村游平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信小程序·小程序·maven
wangjing_05224 小时前
C语言练习.if.else语句.strstr
c语言·开发语言
Tony_long74834 小时前
Python学习——字符串操作方法
开发语言·c#
SoraLuna4 小时前
「Mac玩转仓颉内测版26」基础篇6 - 字符类型详解
开发语言·算法·macos·cangjie
出逃日志4 小时前
JS的DOM操作和事件监听综合练习 (具备三种功能的轮播图案例)
开发语言·前端·javascript
前端青山5 小时前
React事件处理机制详解
开发语言·前端·javascript·react.js