C语言基础:条件语句与分支控制实例解析

文章目录


一、计算一元一次函数的值

1. 一元一次函数的计算方法

1.有一个函数:

y=x (x<1)

y=2x-1 (1<=x<10)

y =3x-11 (x>=10)

编写程序,输入 xx 的值,输出对应的 yy 值。例如,如果 x=−1x=−1,则输出结果为 f(−1)=−1f(−1)=−1。

1.1.1方法一:使用 if 语句实现

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

int main() {
    int x, y;
    scanf_s("%d", &x);
    if (x < 1) {
        y = x;
        printf("f(%d)=%d", x, y);
    } else if (1 <= x && x < 10) {
        y = 2 * x - 1;
        printf("f(%d)=%d", x, y);
    } else {
        y = 3 * x - 11;
    }
    return 0;
}

1.1.2方法二:使用 switch 语句实现

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

int main() {
    int x;
    scanf_s("%d", &x);
    switch (x > 1) {
        case 1:
            if (x < 10) printf("f(%d)=%d", x, 2 * 2 - 1);
            else printf("f(%d)=%d", x, 3 * x - 11);
            break; 
        case 0:
            printf("f(%d)=%d", x, x);
            break;
    }
    return 0;
}

这两种方法都可以有效地根据输入的 xx 值计算出对应的 yy 值,并输出结果。第一种方法使用 if-else 结构,逻辑清晰,易于理解。第二种方法尝试使用 switch 语句,但需要注意 switch 语句的条件表达式和 break 语句的使用,以避免逻辑错误。

二、成绩等级判定程序

程序功能: 该程序用于根据用户输入的分数,判定并输出相应的成绩等级。

输入:用户输入的分数(整数)。

输出:根据分数判定的成绩等级。

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

int main() {
    int score;
    printf("请输入分数: ");
    scanf_s("%d", &score);
    switch (score / 10) {
        case 10:
        case 9:
            printf("成绩等级: 优\n");
            break;
        case 8:
            printf("成绩等级: 良\n");
            break;
        case 7:
            printf("成绩等级: 中\n");
            break;
        case 6:
            printf("成绩等级: 及格\n");
            break;
        default:
            printf("成绩等级: 差\n");
            break;
    }
    return 0;
}

三、找出三个数中的最大值

1. 比较并确定最大值

程序功能:

该程序用于找出用户输入的三个整数中的最大值。

输入:用户输入的三个整数。

输出:三个数中的最大值。

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

int main() {
    int a, b, c,max_ab;
    printf("请输入三个数:\n");
    scanf_s("%d %d %d", &a, &b, &c);  // 获取三个整数输入

    switch (a > b) {
        case 1:
            max_ab = a;
            break;
        case 0:
            max_ab = b;
            break;
    }

    switch (max_ab > c) {
        case 1:
            printf("最大值是:%d\n", max_ab);
            break;
        case 0:
            printf("最大值是:%d\n", c);
            break;
    }

    return 0;
}

说明:

程序首先提示用户输入三个整数。

第一个 switch 语句比较前两个数 a 和 b,并将较大的数赋值给 max_ab。

第二个 switch 语句将 max_ab 与第三个数 c 进行比较,确定并输出三个数中的最大值。

这种方法通过两次比较,有效地找出了三个数中的最大值,并将其输出。

相关推荐
蓝桉8028 分钟前
图片爬取案例
开发语言·数据库·python
逸狼14 分钟前
【JavaEE进阶】Spring DI
java·开发语言
my_styles43 分钟前
2025-alibaba-Sentinel组件
java·开发语言·sentinel
禁默1 小时前
C++之旅-C++11的深度剖析(1)
开发语言·c++
张有志_1 小时前
STL容器终极解剖:C++ vector源码级实现指南 | 从内存分配到异常安全的全流程避坑
c语言·c++·算法·开源·visual studio
繁依Fanyi1 小时前
巧妙实现右键菜单功能,提升用户操作体验
开发语言·前端·javascript·vue.js·uni-app·harmonyos
程序员黄同学1 小时前
解释 Vue 中的虚拟 DOM,如何通过 Diff 算法最小化真实 DOM 更新次数?
开发语言·前端·javascript
~kiss~2 小时前
Rust~二刷异步逻辑
开发语言·后端·rust
SomeB1oody2 小时前
【Rust中级教程】2.7. API设计原则之灵活性(flexible) Pt.3:借用 vs. 拥有、`Cow`类型、可失败和阻塞的析构函数及解决办法
开发语言·后端·性能优化·rust
m0_748240252 小时前
python轻量级框架-flask
开发语言·python·flask