当前位置: 首页 > news >正文

c语言----选择结构

基本概念

  • 选择结构是C语言中用于根据条件判断来执行不同代码块的结构。它允许程序在不同的条件下执行不同的操作,使程序具有决策能力。

if语句

  • 单分支if语句
    • 语法格式
      • if (条件表达式) { 执行语句块; }
    • 功能
      • 当条件表达式的值为真(在C语言中,非零值表示真,零值表示假)时,就会执行花括号内的语句块;如果条件表达式的值为假,则跳过语句块直接执行后面的代码。
    • 示例代码
#include <stdio.h>
int main() {int num = 10;if (num > 5) {printf("这个数大于5\n");}return 0;
}
 - **解释**:- 首先定义了一个整数变量`num`并赋值为`10`。然后在`if`语句中,条件表达式`num > 5`的值为真(因为`10 > 5`),所以会执行花括号内的`printf`语句,在屏幕上输出“这个数大于5”。
  • 双分支if - else语句
    • 语法格式
      • if (条件表达式) { 执行语句块1; } else { 执行语句块2; }
    • 功能
      • 当条件表达式的值为真时,执行语句块1;当条件表达式的值为假时,执行语句块2。这样可以根据条件在两个不同的操作之间进行选择。
    • 示例代码
#include <stdio.h>
int main() {int num = 3;if (num > 5) {printf("这个数大于5\n");} else {printf("这个数小于等于5\n");}return 0;
}
 - **解释**:- 定义整数变量`num`为`3`,在`if - else`语句中,条件表达式`num > 5`的值为假,所以会执行`else`部分的语句块,输出“这个数小于等于5”。
  • 多分支if - else if - else语句
    • 语法格式
      • if (条件表达式1) { 执行语句块1; } else if (条件表达式2) { 执行语句块2; }... else { 执行语句块n; }
    • 功能
      • 用于处理多种不同的条件情况。首先判断条件表达式1,如果为真则执行语句块1;如果为假,则继续判断条件表达式2,以此类推。如果所有的条件表达式都为假,则执行else部分的语句块(else部分可以省略)。
    • 示例代码
#include <stdio.h>
int main() {int score = 75;if (score >= 90) {printf("优秀\n");} else if (score >= 80) {printf("良好\n");} else if (score >= 60) {printf("及格\n");} else {printf("不及格\n");}return 0;
}
 - **解释**:- 定义了一个变量`score`表示成绩。通过多分支`if - else if - else`语句来判断成绩的等级。因为`75 >= 60`且`75 < 80`,所以会输出“及格”。

switch语句

  • 语法格式
    • switch (表达式) { case 常量表达式1: 执行语句块1; break; case 常量表达式2: 执行语句块2; break;... default: 执行语句块n; }
  • 功能
    • 根据表达式的值与各个case后面的常量表达式的值进行匹配。如果匹配成功,则执行对应的执行语句块,直到遇到break语句或者switch语句结束。如果没有匹配成功的case,则执行default部分的语句块(default部分可以省略)。
  • 示例代码
#include <stdio.h>
int main() {int day = 3;switch (day) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;default:printf("无效的日期\n");}return 0;
}
  • 解释
    • 定义一个变量day3,在switch语句中,表达式day的值与case 3匹配成功,所以会执行case 3对应的语句块,输出“星期三”,然后遇到break语句,跳出switch语句。
  • 注意事项
    • switch语句中,case后面的常量表达式的值必须是常量,不能是变量。
    • 每个case分支后的执行语句块如果没有break语句,程序会继续执行下一个case分支的语句,这可能会导致不符合预期的结果。例如,如果在上述代码中case 3后面没有break,那么除了输出“星期三”,还会输出“星期四”、“星期五”等,直到遇到break或者switch语句结束。在这里插入图片描述

C语言中的多分支选择结构是什么?

  1. 概念

    • C语言中的多分支选择结构是一种程序控制结构,用于在多种不同的条件下执行不同的代码块。它允许程序根据多个不同的条件表达式的值来决定执行哪一个分支的代码,从而实现复杂的决策逻辑。这种结构可以处理多种可能的情况,而不仅仅是简单的“是”或“否”两种情况。
  2. if - else if - else语句实现多分支选择结构

    • 语法格式
      • if (条件表达式1) { 执行语句块1; } else if (条件表达式2) { 执行语句块2; } else if (条件表达式3) { 执行语句块3; }... else { 执行语句块n; }
    • 执行流程
      • 程序首先判断条件表达式1的值是否为真(在C语言中,非零值为真,零值为假)。如果为真,则执行语句块1,然后跳过后续所有的else ifelse部分,继续执行整个if - else if - else结构后面的代码。
      • 如果条件表达式1的值为假,则接着判断条件表达式2的值。如果条件表达式2的值为真,则执行语句块2,然后跳过后面的else ifelse部分。
      • 以此类推,当所有的else if部分的条件表达式都为假时,如果有else部分,则执行语句块n。
    • 示例代码 - 根据成绩划分等级
#include <stdio.h>
int main() {int score;printf("请输入学生成绩:");scanf("%d", &score);if (score >= 90) {printf("优秀\n");} else if (score >= 80) {printf("良好\n");} else if (score >= 70) {printf("中等\n");} else if (score >= 60) {printf("及格\n");} else {printf("不及格\n");}return 0;
}
 - **解释**:- 首先通过`scanf()`函数获取用户输入的学生成绩`score`。然后按照从高分到低分的顺序依次判断成绩所属的等级。如果成绩大于等于`90`,则输出“优秀”;如果成绩小于`90`但大于等于`80`,则输出“良好”,以此类推。如果成绩小于`60`,则输出“不及格”。
  1. switch语句实现多分支选择结构
    • 语法格式
      • switch (表达式) { case 常量表达式1: 执行语句块1; break; case 常量表达式2: 执行语句块2; break;... case 常量表达式n: 执行语句块n; break; default: 执行语句块n + 1; }
    • 执行流程
      • 首先计算switch后的表达式的值。然后将这个值与case后的各个常量表达式的值进行逐一比较。
      • 当表达式的值与某个case后的常量表达式的值相等时,就从该case分支开始执行语句块,一直执行到遇到break语句或者switch语句结束。
      • 如果表达式的值与所有case后的常量表达式的值都不相等,且存在default部分,则执行default部分的语句块;如果不存在default部分,则整个switch语句直接结束,不执行任何操作。
    • 示例代码 - 根据星期几输出信息
#include <stdio.h>
int main() {int day;printf("请输入星期几(1 - 7):");scanf("%d", &day);switch (day) {case 1:printf("星期一,新的一周开始啦。\n");break;case 2:printf("星期二,努力工作/学习。\n");break;case 3:printf("星期三,一周已经过去一半啦。\n");break;case 4:printf("星期四,快要到周末啦。\n");break;case 5:printf("星期五,明天就是周末啦。\n");break;case 6:printf("星期六,休息时间。\n");break;case 7:printf("星期日,准备迎接新的一周。\n");break;default:printf("输入有误,请输入1 - 7之间的整数。\n");}return 0;
}
 - **解释**:- 先通过`scanf()`函数获取用户输入的表示星期几的整数`day`。然后在`switch`语句中,将`day`的值与各个`case`后的常量进行比较。如果`day`的值与某个`case`的值相等,就执行相应的语句块并通过`break`语句跳出`switch`语句。如果`day`的值与所有`case`的值都不相等,则执行`default`部分的语句块,提示用户输入有误。
  1. if - else if - else和switch语句的比较与选择
    • 比较
      • 适用范围
        • if - else if - else语句可以用于处理基于范围的条件判断或者复杂的逻辑表达式。例如,在根据成绩划分等级的例子中,条件是基于成绩的范围来判断的。
        • switch语句主要用于处理表达式的值与多个离散的常量值进行匹配的情况,如根据枚举值或者固定的整数选项进行操作。
      • 灵活性
        • if - else if - else语句在条件表达式的形式上更加灵活,可以是各种复杂的关系表达式和逻辑表达式的组合。
        • switch语句的case后面必须是常量表达式,形式相对固定。
    • 选择依据
      • 如果条件是基于范围或者复杂的逻辑关系,通常使用if - else if - else语句。
      • 如果是根据一个表达式的值与多个离散的常量进行匹配,且每个分支的操作相对独立简单,使用switch语句会使代码更加简洁明了。

在这里插入图片描述

多分支选择结构的嵌套使用方法

  1. 嵌套if - else if - else语句
    • 基本概念
      • 嵌套if - else if - else结构是指在一个ifelse if或者else语句块内部再包含一个完整的if - else if - else结构。这种嵌套方式可以处理更加复杂的条件判断,用于实现多层级的决策逻辑。
    • 语法格式示例(简单示意)
if (外层条件1) {if (内层条件1) {// 执行内层语句块1} else if (内层条件2) {// 执行内层语句块2} else {// 执行内层语句块3}
} else if (外层条件2) {// 执行外层语句块2
} else {// 执行外层语句块3
}
  • 示例代码 - 根据学生成绩和平时表现评定奖学金等级
#include <stdio.h>
int main() {int score;char performance;printf("请输入学生成绩:");scanf("%d", &score);printf("请输入学生平时表现(A - 优秀,B - 良好,C - 一般):");scanf(" %c", &performance);  // 注意这里的空格,用于跳过前面输入的换行符if (score >= 90) {if (performance == 'A') {printf("一等奖学金\n");} else if (performance == 'B') {printf("二等奖学金\n");} else {printf("三等奖学金\n");}} else if (score >= 80) {if (performance == 'A') {printf("二等奖学金\n");} else if (performance == 'B') {printf("三等奖学金\n");} else {printf("无奖学金\n");}} else {printf("无奖学金\n");}return 0;
}
 - **解释**:- 首先通过`scanf()`函数获取学生成绩`score`和平时表现`performance`。- 外层`if - else if - else`结构根据成绩划分了不同的区间(`score >= 90`、`score >= 80`和其他情况)。- 在成绩大于等于`90`的分支内部,又通过一个`if - else if - else`结构根据平时表现进一步划分奖学金等级。同样,在成绩大于等于`80`的分支内部也有类似的根据平时表现划分奖学金等级的内层结构。
  1. 嵌套switch语句
    • 基本概念
      • 嵌套switch语句是指在一个switch语句的某个case分支或者default分支中再包含一个switch语句。这样可以在基于一个条件进行初步分类后,再根据另一个条件进行更细致的分类。
    • 语法格式示例(简单示意)
switch (外层表达式) {case 外层常量1:switch (内层表达式) {case 内层常量1:// 执行内层语句块1break;case 内层常量2:// 执行内层语句块2break;//...default:// 执行内层语句块n}break;case 外层常量2:// 执行外层语句块2break;//...default:// 执行外层语句块n
}
  • 示例代码 - 根据月份和日期判断季节和特殊节日
#include <stdio.h>
int main() {int month, day;printf("请输入月份(1 - 12):");scanf("%d", &month);printf("请输入日期(1 - 31):");scanf("%d", &day);switch (month) {case 3:if (day >= 20) {switch (day) {case 21:printf("春分\n");break;default:printf("春季\n");}} else {printf("冬季\n");}break;case 4:case 5:printf("春季\n");break;case 6:if (day >= 21) {switch (day) {case 21:printf("夏至\n");break;default:printf("夏季\n");}} else {printf("春季\n");}break;//...(后续月份的判断类似)default:printf("输入的月份有误\n");}return 0;
}
 - **解释**:- 首先获取用户输入的月份`month`和日期`day`。- 外层`switch`语句根据月份进行初步分类。例如,在`month`为`3`的分支中,又通过一个`if`语句判断日期是否大于等于`20`。如果是,再通过一个内层`switch`语句判断是否为春分(`day == 21`)或者输出是春季。在`month`为`6`的分支中也有类似的嵌套结构用于判断夏至和夏季等情况。- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d3eb4e07a4934c118bc77b999b37c4ea.png#pic_center)
  1. 混合嵌套(if - else if - elseswitch语句嵌套)
    • 基本概念
      • 这种混合嵌套方式结合了if - else if - else语句的灵活性和switch语句的简洁性,用于处理复杂且具有多层次条件的情况。可以先使用if - else if - else语句进行一些基于范围或者复杂逻辑的初步判断,然后在某个分支中使用switch语句进行更细致的分类。
    • 语法格式示例(简单示意)
if (外层条件1) {switch (内层表达式) {case 内层常量1:// 执行内层语句块1break;case 内层常量2:// 执行内层语句块2break;//...default:// 执行内层语句块n}
} else if (外层条件2) {// 执行外层语句块2
} else {// 执行外层语句块3
}
  • 示例代码 - 根据用户身份和操作选择进行权限验证和操作执行
#include <stdio.h>
int main() {int userType;int operation;printf("请输入用户类型(1 - 管理员,2 - 普通用户):");scanf("%d", &userType);printf("请输入操作(1 - 查询,2 - 修改,3 - 删除):");scanf("%d", &operation);if (userType == 1) {switch (operation) {case 1:printf("管理员执行查询操作\n");break;case 2:printf("管理员执行修改操作\n");break;case 3:printf("管理员执行删除操作\n");break;default:printf("无效操作\n");}} else if (userType == 2) {if (operation == 1) {printf("普通用户执行查询操作\n");} else {printf("普通用户无此权限\n");}} else {printf("无效用户类型\n");}return 0;
}
 - **解释**:- 先通过`scanf()`函数获取用户类型`userType`和操作选择`operation`。- 外层`if - else if - else`结构根据用户类型进行初步划分。对于管理员(`userType == 1`)类型,通过一个`switch`语句根据操作选择进一步执行不同的操作。对于普通用户(`userType == 2`)类型,通过一个`if`语句判断是否为查询操作,若是则允许执行,否则提示无此权限。如果用户类型无效,则输出相应提示。

相关文章:

c语言----选择结构

基本概念 选择结构是C语言中用于根据条件判断来执行不同代码块的结构。它允许程序在不同的条件下执行不同的操作&#xff0c;使程序具有决策能力。 if语句 单分支if语句 语法格式&#xff1a; if (条件表达式) { 执行语句块; } 功能&#xff1a; 当条件表达式的值为真&#…...

KS曲线python实现

目录 实战 实战 # 导入第三方模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt# 自定义绘制ks曲线的函数 def plot_ks(y_test, y_score, positive_flag):# 对y_test重新设置索引y_test.index np.arange(len(y_test))# 构建目标数据集target_dat…...

解决matplotlib中文乱码问题

进入python&#xff0c;查看缓存 import matplotlib as mpl print(mpl.get_cachedir())如果结果为/Users/xxx/.matplotlib 那么就rm -rf /Users/xxx/.matplotlib 然后 mkdir ~/.fonts cd ~/.fonts wget http://129.204.205.246/downloads/SimHei.ttfsudo apt-get install fo…...

实操给桌面机器人加上超拟人音色

前面我们讲了怎么用CSK6大模型开发板做一个桌面机器人充当AI语音助理&#xff0c;近期上线超拟人方案&#xff0c;不仅大模型语音最快可以1秒内回复&#xff0c;还可以让我们的桌面机器人使用超拟人音色、具备声纹识别等能力&#xff0c;本文以csk6大模型开发板为例实操怎么把超…...

git stash 的文件如何找回

在Git中&#xff0c;如果你使用了git stash命令来保存你的工作进度&#xff0c;但之后想要找回这些被stash的文件&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 查看stash列表 首先&#xff0c;使用git stash list命令来查看当前保存的所有stash记录。这个命令会列出…...

皮肤伤口分割数据集labelme格式248张5类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;284 标注数量(json文件个数)&#xff1a;284 标注类别数&#xff1a;5 标注类别名称:["bruises","burns","cu…...

uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!

**提要&#xff1a;**近段时间我们收到多个康复机构用户&#xff0c;咨询AI运动识别插件是否可以应用于肢力运动受限患者的康复锻炼中来&#xff0c;插件是可以应用到AI康复锻炼中的&#xff0c;今天小编就为您介绍一下AI运动识别插件在康腹锻炼中的应用场景。 一、康复机构的应…...

双内核架构 Xenomai 4 安装教程

Xenomai 4是一种双内核架构, 继承了Xenomai系列的特点&#xff0c;通过在Linux内核中嵌入一个辅助核心&#xff08;companion core&#xff09;&#xff0c;来提供实时能力。这个辅助核心专门处理那些需要极低且有界响应时间的任务。 本文将在官网教程(https://evlproject.org/…...

【redis的使用、账号流程、游戏服Handler的反射调用】1.自增id 2.全局用户名这样子名字唯一 3.

一、web服 1)账号注册 // 用于唯一命名服务 com.xinyue.game.center.business.account.logic.AccountRegisterService#accountRegister public void accountRegister(AccountEntity account) {accountManager.checkUsername(account.getUsername());accountManager.checkPass…...

neo4j 图表数据导入到 TuGraph

neo4j 图表数据导入到 TuGraph 代码文件说明后文 前言:近期在引入阿里的 TuGraph 图数据库&#xff0c;需要将 原 neo4j 数据导入到新的 tugraph 数据库中。预期走csv文件导入导出&#xff0c;但因为格式和数据库设计问题&#xff0c;操作起来比较麻烦&#xff08;可能是个人没…...

启动报错java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus

报错信息图片 日志&#xff1a; Exception in thread "Quartz Scheduler [scheduler]" java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus先说我自己遇到的问题&#xff0c;我们项目在web设置了自定义的log输出路径&#xff0c;多了一个 / 去…...

【ubuntu18.04】ubuntu18.04挂在硬盘出现 Wrong diagnostic page; asked for 1 got 8解决方案

错误日志 [ 8754.700227] usb 2-3: new full-speed USB device number 3 using xhci_hcd [ 8754.867389] usb 2-3: New USB device found, idVendor0e0f, idProduct0002, bcdDevice 1.00 [ 8754.867421] usb 2-3: New USB device strings: Mfr1, Product2, SerialNumber0 [ 87…...

kubeadm安装K8s高可用集群之集群初始化及master/node节点加入calico网络插件安装

系列文章目录 1.kubeadm安装K8s高可用集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx及kubeadm部署 3.kubeadm安装K8s高可用集群之集群初始化及master/node节点加入集群calico网络插件安装 kubeadm安装K8s高可用集群之集群初始化及master/node节点加入ca…...

游戏何如防抓包

游戏抓包是指在游戏中&#xff0c;通过抓包工具捕获和分析游戏客户端与服务器之间传输的封包数据的过程。抓包工具可实现拦截、篡改、重发、丢弃游戏的上下行数据包&#xff0c;市面上常见的抓包工具有WPE、Fiddler和Charles Proxy等。 抓包工具有两种实现方式&#xff0c;一类…...

【LeetCode】每日一题 2024_12_19 找到稳定山的下标(模拟)

前言 每天和你一起刷 LeetCode 每日一题~ 最近力扣的每日一题出的比较烂&#xff0c;难度过山车&#xff0c;导致近期的更新都三天打鱼&#xff0c;两天断更了 . . . LeetCode 启动&#xff01; 题目&#xff1a;找到稳定山的下标 代码与解题思路 先读题&#xff1a;最重要…...

运维 mysql、redis 、RocketMQ性能排查

MySQL查看数据库连接数 1. SHOW STATUS命令-查询当前的连接数 MySQL 提供了一个 SHOW STATUS 命令&#xff0c;可以用来查看服务器的状态信息&#xff0c;包括当前的连接数。 SHOW STATUS LIKE Threads_connected;这个命令会返回当前连接到服务器的线程数&#xff0c;即当前…...

[SAP ABAP] 将内表数据转换为HTML格式

从sflight数据库表中检索航班信息&#xff0c;并将这些信息转换成HTML格式&#xff0c;然后下载或显示在前端 开发步骤 ① 自定义一个数据类型 ty_sflight 来存储航班信息 ② 声明内表和工作区变量&#xff0c;用于存储表头、字段、HTML内容和航班详细信息以及创建字段目录lt…...

LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库

背景 Dify 是一款开源的大语言模型(LLM) 应用开发平台。其直观的界面结合了 AI 工作流、 RAG 管道、 Agent 、模型管理、可观测性功能等&#xff0c;让您可以快速从原型到生产。相比 LangChain 这类有着锤子、钉子的工具箱开发库&#xff0c; Dify 提供了更接近生产需要的完整…...

使用C语言连接MySQL

在C语言中连接MySQL数据库&#xff0c;通常需要使用MySQL提供的C API。以下是使用C语言连接MySQL数据库的基本步骤和示例代码&#xff1a; 步骤 1: 安装MySQL C API 首先&#xff0c;确保你的系统上安装了MySQL数据库&#xff0c;并且安装了MySQL C API库。在大多数Linux发行版…...

PyTorch 2.0 以下版本中设置默认使用 GPU 的方法

PyTorch 2.0 以下版本中设置默认使用 GPU 的方法 在 PyTorch 2.0以下版本中&#xff0c;默认情况下仍然是使用 CPU 进行计算&#xff0c;除非明确指定使用 GPU。在 PyTorch 2.0 以下版本中&#xff0c;虽然没有 torch.set_default_device 的便捷方法&#xff0c;但可以通过显式…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...