C语言 --- 经典习题1

news2025/2/27 23:07:17

C语言 --- 经典习题1

  • 第 一 题 - - - 交 换 两 个 整 数 的 值(四 种 方 法)
  • 第 二 题 - - - 最 大 公 约 数 和 最 小 公 倍 数 之 和
  • 总结

💻作者简介:曾 与 你 一 样 迷 茫,现 以 经 验 助 你 入 门 C 语 言
💡个人主页:@ 笑 口 常 开 xpr 的 个 人 主 页
📚系列专栏:C 启 新 程
✨代码趣语:如 果 你 无 法 简 单 地 解 释 它 , 那 说 明 你 还 没 有 很 好 地理 解 它。
💪代码千行,始于坚持,每日敲码,进阶编程之路。

在这里插入图片描述

       在 编 程 的 奇 妙 宇 宙 里,每 一 道 C 语 言 的 题 目 都 宛 如 一 颗 神 秘 的 星 辰 ,潜 藏 着 无 尽 的 解 题 思 路 和 创 新 可 能 。你 可 曾 在 夜 深 人 静 时 苦 思 冥 想,一 道 看 似 简 单 的 C 语言 题 目 背 后 ,究 竟 藏 着 怎 样 的 算 法 奥 秘 ?又 能 为 我 们 解 决 实 际 问题 带 来 怎 样 的 启 发 ?今 天 ,让 我 们 投 身 C 语 言 刷 题 海 洋,挖 掘 代 码 宝 藏 ,体 验 解 题 快 感,解 锁 其 无 限 潜 力,向 编 程 高 手 迈 进!

第 一 题 - - - 交 换 两 个 整 数 的 值(四 种 方 法)

描 述:输 入 两 个 整 数 输 出 时 交 换 两 个 整 数。
输 入 描 述:
       多 组 输 入 ,每 组 输 入 包 含 两 个 正 整 数 n 和 m。
( -32768 ≤ n ≤ 32767,-32768 ≤ m ≤ 32767)
输 出 描 述:
       对 于 每 组 输 入 ,输 出 两 个 正 整 数,中 间 用 空 格 隔 开。
示 例 1 :
输 入:10 20
输 出:20 10
示 例 2 :
输 入:20 30
输 出:30 20

思 路 分 析:
         题 目 要 求 输 入 两 个 整 数 并 将 两 个 整 数 交 换 顺 序 后 输 出,注 意 题 目 要 求 是 多 组 输 入,这 四 个 字 的 意 思 是 程 序 要 求 输 入 不 止 一 组 数 据,可 能 会 有 多 组 数 据 。 可 以 先 尝 试 输 入 一 组 数 据 交 换 后 再 想 办 法 进 行 多 组 数 据 的 输 入 输 出。

温 馨 提 示:读 者 们 ,先 自 己 写 代 码,这 是 提 升 编 程 能 力 的 好 机 会。若 未 达 要 求 ,别 气 馁 ,参 考 下 文 代 码 会 有 新 收 获。

下 面 展 示 代 码 示 例
         首 先 我 们 先 解 决 多 组 输 入 这 个 问 题,在 不 知 道 有 多 少 组 数 据 需 要 输 入 输 出 时 使 用 while 循 环 来 解 决。下 面 有 两 种 方 法 来 如 何 解 决“ 多 组 输 入”这 个 问题。
方 法 一 :
        while 循 环 + scanf 的 返 回 值 , scanf 的 返 回 值 是 scanf 成 功 读 到 的 数 字 个 数 。当 输 入 的 数 不 是 两 个 数 时 或 者 在 VS 编 译 器 中 按 3 次 ctrl + z 结 束 循 环 。

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	while (scanf("%d %d", &a, &b) == 2)
	{
		//题目要求
	}
	return 0;
}

方 法 二 :

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	char c = 0;
	while (scanf("%d %d%c", &a, &b, &c))
	{
		if (c != '\n')
		{
			break;
		}
		//题目要求
	}
	return 0;
}

经 过 上 面 的 讨 论 ,现 在 可 以 解 决 这 道 题 目 了。

方 法 一 :

直 接 输 出

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	char c = 0;
	while (scanf("%d %d%c", &a, &b, &c))
	{
		if (c != '\n')
		{
			break;
		}
		printf("%d %d\n", b, a);
	}
	return 0;
}

方 法 二 :

三 变 量 交 换 法。
生 活 场 景 类 比:
         假 如 你 有 两 个 杯 子 ,一 个 杯 子( 杯 子 A)装 着 橙 汁 ,另 一 个 杯 子( 杯 子 B )装 着 可 乐 。现 在 你 想 把 这 两 个 杯 子 里 的 饮 料 交 换 一 下 , 让 杯 子 A 装 可 乐 ,杯 子 B 装 橙 汁 ,但 是 你 不 能 直 接 把 两 种 饮 料 倒 在 一 起 。这 时 候 你 就 需 要 再 拿 一 个 空 杯 子( 杯 子 C )来 帮 忙 。

具 体 操 作 步 骤 如 下 :
         把 杯 子 A 里 的 橙 汁 倒 进 空 杯 子 C 里 。 这 时 候 杯 子 A 就 空 了,杯 子 C 里 装 着 橙 汁。
        把 杯 子 B 里 的 可 乐 倒 进 空 杯 子 A 里 。现 在 杯 子 A 里 装 着 可 乐 ,杯 子 B 空 了 。
         把 杯 子 C 里 的 橙 汁 倒 进 空 杯 子 B 里 。这 样 ,杯 子 A 就 装 着 可 乐 ,杯 子 B 装 着 橙 汁 ,实 现 了 饮 料 的 交 换 。

#include <stdio.h>
int main() 
{
    int a = 10;  // 变量a就像杯子A,初始值10就像橙汁
    int b = 20;  // 变量b就像杯子B,初始值20就像可乐
    int temp = 0;    // 变量temp就像空杯子C
    
    // 第一步:把变量a的值赋给变量temp
    temp = a;    // 相当于把杯子A里的橙汁倒进杯子C

    // 第二步:把变量b的值赋给变量a
    a = b;       // 相当于把杯子B里的可乐倒进杯子A

    // 第三步:把变量temp的值赋给变量b
    b = temp;    // 相当于把杯子C里的橙汁倒进杯子B

    // 输出交换后的结果
    printf("%d %d\n", a, b);
    return 0;
}

优 点:

  • 逻 辑 清 晰 易 懂 :使 用 第 三 个 临 时 变 量 交 换 变 量 的 逻 辑 非 常 直 观 ,很 容 易 理 解。
  • 不 会 产 生 溢 出 问 题 :由 于 这 种 方 法 只 是 简 单 的 赋 值 操 作 ,不 涉 及变 量 的 加 减 运 算 ,所 以 不 会 出 现 溢 出 的 情 况。
  • 适 用 范 围 广:可 以 用 于 各 种 数 据 类 型 的 变 量 交 换。

缺 点:

  • 需 要 额 外 的 内 存 空 间:使 用 第 三 个 临 时 变 量 会 占 用 额 外 的 内 存 空 间 。
  • 代 码 行 数 稍 多:使 用 临 时 变 量 交 换 需 要 多 声 明 一 个 变 量,代 码 行 数 相 对 较 多 。
    方 法 三 :

混 合 与 分 离 。
生 活 场 景 类 比:
         想 象 你 有 两 个 钱 包,钱 包 A 和 钱 包 B。钱 包 A 里 有 一 定 数 量 的 现 金( 用 数 字 a 表 示 ),钱 包 B 里 也 有 一 定 数 量 的 现 金(用 数 字 b 表 示 )。现 在 你 想 要 把 两 个 钱 包 里 的 现 金 数 量 交 换 一 下 , 但 不 借 助 额 外 的 钱 包 。

#include<stdio.h>
int main()
{
    int a = 0;  // 钱包 A 一开始里面现金数量为 0
    int b = 0;  // 钱包 B 一开始里面现金数量为 0
    while (scanf("%d %d", &a, &b) == 2)
    {
        a = a + b;
        // 现在把钱包 A 和钱包 B 里的现金都放到钱包 A 里。
        // 原本钱包 A 有 a 元,钱包 B 有 b 元
        // 现在钱包 A 里一共有 a + b 元现金
        b = a - b;
        // 从现在装有 a + b 元现金的钱包 A 中
        // 拿出原本钱包 B 里的 b 元现金放到钱包 B 中。
        // 那么钱包 B 里现在的现金数量就是 (a + b) - b = a 元
        // 也就是原本钱包 A 里的现金数量
        a = a - b;
        // 此时钱包 A 里还剩下 (a + b) - a = b 元现金
        // 也就是原本钱包 B 里的现金数量。
        printf("%d %d\n", a, b);
    }
    return 0;
}

优 点:

  • 无 需 额 外 变 量:加 减 法 交 换 变 量 值 不 需 要 引 入 第 三 个 临 时 变 量 ,可 以 节 省 内 存 空 间。
  • 代 码 简 洁 性 :从 代 码 行 数 来 看 ,加 减 法 交 换 变 量 只 需 要 三 行 代 码 就 能 完 成 交 换 操 作 , 代 码 结 构 相 对 简 单 。

缺 点:

  • 导 致 溢 出 问 题:当 两 个 变 量 的 值 较 大 时 ,相 加 的 结 果 可 能 会 超 出 变 量 数 据 类 型 所 能 表 示 的 最 大 值 ,从 而 导 致 溢 出。
  • 可 读 性 较 差 :加 减 法 交 换 变 量 的 逻 辑 相 对 不 直 观,对 于 不 熟 悉 这 种 技 巧 的 开 发 者 来 说 ,理 解 代 码 的 意 图 可 能 需 要 花 费 更 多 的 时 间 。相 比 之 下 ,使 用 临 时 变 量 交 换 的 方 法 更 容 易 理 解。
  • 适 用 数 据 类 型 受 限 :这 种 方 法 主 要 适 用 于 支 持 加 减 运 算 的 数 据 类 型。

方 法 四:

生 活 场 景 类 比:
         你 正 在 玩 拼 图 游 戏,有 两 块 特 殊 的 拼 图 板 ,分 别 是 拼 图 板 A 和 拼 图 板 B,每 块 拼 图 板 上 都 有 独 特 的 图 案。我 们 用 数 字 来 代 表 这 些 图 案 的 特 征 信 息,现 在 要 在 不 借 助 额 外 工 具 的 情 况 下,交 换 这 两 块 拼 图 板 上 的 图 案 信 息。

#include <stdio.h>
int main()
{
    int a = 10; 
    int b = 20;
    while (scanf("%d %d", &a, &b) == 2)
    {
        a = a ^ b; 
        // 把两块拼图板靠近,让它们的图案信息相互交织,产生一种混合的图案信息,存储在拼图板A上。
        b = a ^ b; 
        // 再次让两块拼图板相互作用,拼图板B从混合信息中提取出拼图板A原来的图案信息,然后更新自己的图案。
        a = a ^ b; 
        //拼图板A从混合信息中提取出拼图板B原来的图案信息,更新自己的图案,完成交换。
    }
    printf("%d %d", a, b);
    return 0;
}

异 或 运 算 原 理 与 场 景 对 应:

x ^ x = 0:如 果 两 块 拼 图 板 图 案 完 全 相 同 ,它 们 相 互 作 用 时,就 像 两 个 相 同 的 磁 场 相 互 抵 消,不 会 产 生 新 的 信 息。
x ^ 0 = x:当 一 块 拼 图 板 和 一 个 没 有 任 何 图 案 特 征(编 号 为 0 )的 “ 虚 拟 拼 图 板 ” 相 互 作 用 时,它 的 图 案 信 息 不 会 改 变 。

优 点:

  • 无 需 额 外 内 存 空 间:使 用 异 或 运 算 交 换 两 个 变 量 的 值 时,不 需 要 额 外 定 义 一 个 临 时 变 量 来 存 储 中 间 结 果。
  • 代 码 简 洁 性:从 代 码 行 数 上 看 ,使 用 异 或 运 算 交 换 变 量 只 需 要 三 行 代 码 就 能 完 成 交 换 操 作 ,代 码 结 构 相 对 紧 凑。
  • 具 有 一 定 趣 味 性 和 技 巧 性:异 或 运 算 交 换 变 量 值 的 方 法 利 用 了 异 或 运 算 的 特 殊 性 质。

缺 点:

  • 可 读 性 较 差 :异 或 运 算 逻 辑 不 够 直 观。对 于 不 熟 悉 这 种 技 巧 的 开 发 者 来 说 ,理 解 代 码 的 意 图 可 能 需 要 花 费 更 多 的 时 间 。相 比 之 下 ,使 用 临 时 变 量 交 换 的 方 法 更 容 易 理 解。
  • 仅 适 用 于 支 持 位 运 算 的 数 据 类 型:异 或 运 算 是 一 种 位 运 算, 只 能 用 于 支 持 位 运 算 的 数 据 类 型。
  • 存 在 自 交 换 问 题:如 果 使 用 异 或 运 算 交 换 的 两 个 变 量 实 际 上 是 同 一 个 变 量( 即 a 和 b 指 向 同 一 个 内 存 地 址 ),那 么 经 过 异 或 运 算 后,该 变 量 的 值 会 变 为 0。

第 二 题 - - - 最 大 公 约 数 和 最 小 公 倍 数 之 和

描 述:

如 何 求 两 个 正 整 数 的 最 大 公 约 数 与 最 小 公 倍 数 之 和 。

输 入 描 述 :

每 组 输 入 包 含 两 个 正 整 数 n 和 m 。( 1 ≤ n ≤ 109,1 ≤ m ≤ 109)

输 出 描 述 :

对 于 每 组 输 入 ,输 出 一 个 正 整 数 ,为 n 和 m 的 最 大 公 约 数 与 最 小 公 倍 数 之 和 。

示 例 1 :
输 入 :10 20
输 出 :30
示 例 2 :
输 入 :15 20
输 出 :65

解 题 必 备

  • 最 大 公 约 数:也 称 为 最 大 公 因 数,指 的 是 两 个 或 多 个 整 数 共 有 约 数 中 最 大 的 一 个。
  • 最 小 公 倍 数:是 指 两 个 或 多 个 整 数 公 有 的 倍 数 中 最 小 的 一 个。
  • 最 小 公 倍 数 与 最 大 公 约 数 的 关 系:
    两 个 数 的 最 小 公 倍 数 等 于 这 两 个 数 的 乘 积 除 以 它 们 的 最 大 公 因 数。以 两 个 正 整 数 a 和 b 为 例,最 小 公 倍 数 = ( a * b ) / 最 大 公 约 数

方 法 1:
辗 转 相 除 法( 欧 几 里 得 算 法):
         用 较 大 数 除 以 较 小 数 得 到 余 数 ,再 用 除 数 和 余 数 中 较 大 的 除 以 较 小 的 ,如 此 反 复,直 到 余 数 为 0,此 时 的 除 数 就 是 最 大 公 因 数。
以 24 和 18 为 例:
24 ÷ 18 = 1……6
18 ÷ 6 = 3……0
此 时 余 数 为 0,除 数 6 就 是 24 和 18 的 最 大 公 因 数。

温 馨 提 示:读 者 们 ,先 自 己 写 代 码,这 是 提 升 编 程 能 力 的 好 机 会。若 未 达 要 求 ,别 气 馁 ,参 考 下 文 代 码 会 有 新 收 获。

下 面 展 示 代 码 示 例

#include<stdio.h>
int main()
{
	long long m = 0, n = 0;
	long long i = 0, b = 0, j = 0;
	scanf("%lld %lld", &m, &n);
	//确保m >= n
	if (m < n)
	{
		m = m + n;
		n = m - n;
		m = m - n;
	}
	//求m和n的最大公因数
	while (n != 0)
	{
		i = m % n;
		m = n;
		n = i;
	}
	//求m和n的最小公倍数
	b = m * n;
	j = b / m;
	printf("%lld\n", m + j);
	return 0;
}

确 保 m >= n 的 必 要 性:

算 法 逻 辑 简 洁 性 :如 果 一 开 始 就 确 保 m 大 于 等 于 n,那 么 在 后 续 的 while 循 环 中,就 可 以 直 接 使 用 m % n 进 行 计 算,代 码 逻 辑 更 加 清 晰 和 直 接。
避 免 额 外 判 断 :若 不 提 前 交 换 m 和 n 的 位 置,在 while 循 环 中 每 次 都 需 要 判 断 哪 个 数 更 大,然 后 再 确 定 用 哪 个 数 除 以 哪 个 数 取 余 数 ,这 样 会 增 加 代 码 的 复 杂 度 和 运 行 时 间。

总 结
         在 本 题 的 求 解 过 程 中,借 助 对 赋 值 运 算 符 的 灵 活 操 控 ,成 功 将 其 应 用 于 辗 转 相 除 法 的 实 现 之 中 。利 用 赋 值 运 算 符 达 成 了 两 个 数 的 交 换,避 免 了 额 外 变 量 的 引 入 ,极 大 程 度 上 精 简 了 代 码 结 构 ,提 升 了 代 码 的 简 洁 性 与 可 读 性。

方 法 2:

更 相 减 损 术:
         两 个 正 整 数 a 和 b(a > b),它 们 的 最 大 公 约 数 等 于 a - b 和 b 的 最 大 公 约 数。不 断 重 复 这 个 过 程 ,直 到 两 个 数 相 等 ,此 时 这 个 数 就 是 它 们 的 最 大 公 约 数。

下 面 展 示 代 码 示 例

#include <stdio.h>
int main() 
{
    int num1 = 0; 
    int num2 = 0;
    scanf("%d %d", &num1, &num2);
    //后面计算时会改变num1和num2的值,所以要放在前面
    int product = num1 * num2;
    //使用更相减损术求最大公因数
    while (num1 != num2) 
    {
        if (num1 > num2) 
        {
            num1 = num1 - num2;
        }
        else 
        {
            num2 = num2 - num1;
        }
    }
    //此时num1和num2相等,即为最大公因数
    int gcd = num1;
    //计算最小公倍数
    int lcm = product / gcd;
    //计算最大公因数和最小公倍数之和
    int sum = gcd + lcm;
    printf("%d\n", sum);
    return 0;
}

在这里插入图片描述

总结

       至 此,关 于 C 语 言 的 探 索 暂 告 一 段 落 ,但 你 的 编 程 征 程 才 刚 刚 启 航。写 代 码 是 与 机 器 深 度 对 话 ,过 程 中 虽 会 在 语 法 、算 法 困 境 里 挣 扎,但 这 些 磨 砺 加 深 了 对 代 码 的 理 解。愿 你 合 上 电 脑 后,灵 感 不 断,在 C 语 言 的 世 界 里 持 续 深 耕,书 写 属 于 自 己 的 编 程 传 奇,下 一 次 开 启 ,定 有 全 新 的 精 彩 等 待。小 编 期 待 重 逢,盼 下 次 阅 读 见 你 们 更 大 进 步,共 赴 代 码 之 约!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义mybatis拦截器,在springboot项目中不起作用的解决方法

自定义mybatis拦截器&#xff0c;在springboot项目中不起作用的解决方法 自定义mybatis拦截器&#xff0c;在若依springboot项目中不起作用的原因 找到 MyBatisConfig 配置类&#xff0c;引入自定义配置 在sqlSessionFactory中添加自定义拦截器&#xff0c;就可以正常使用了…

记录一下在k3s快速创建gitlab

废话不多说&#xff0c;直接上配置文件 需要修改的地方&#xff08;备注都有写&#xff09;&#xff1a; 1.命名空间 namespace 2. claimName 文件挂载 Deployment kind: Deployment apiVersion: apps/v1 metadata:name: gitlabnamespace: cicd # 替换为您的命名空间la…

AWQ和GPTQ量化的区别

一、前言 本地化部署deepseek时发现&#xff0c;如果是量化版的deepseek&#xff0c;会节约很多的内容&#xff0c;然后一般有两种量化技术&#xff0c;那么这两种量化技术有什么区别呢&#xff1f; 二、量化技术对比 在模型量化领域&#xff0c;AWQ 和 GPTQ 是两种不同的量…

线性模型 - 支持向量机

支持向量机&#xff08;SVM&#xff09;是一种用于分类&#xff08;和回归&#xff09;的监督学习算法&#xff0c;其主要目标是找到一个最佳决策超平面&#xff0c;将数据点分为不同的类别&#xff0c;并且使得分类边界与最近的数据点之间的间隔&#xff08;margin&#xff09…

湖北中医药大学谱度众合(武汉)生命科技有限公司研究生工作站揭牌

2025年2月11日&#xff0c;湖北中医药大学&谱度众合&#xff08;武汉&#xff09;生命科技有限公司研究生工作站揭牌仪式在武汉生物技术研究院一楼101会议室举行&#xff0c;湖北中医药大学研究生院院长刘娅教授、基础医学院院长孔明望教授、基础医学院赵敏教授、基础医学院…

面试基础---深入解析 AQS

深入解析 AQS&#xff1a;从源码到实践&#xff0c;剖析 ReentrantLock 和 Semaphore 的实现 引言 在 Java 并发编程中&#xff0c;AbstractQueuedSynchronizer&#xff08;AQS&#xff09;是一个核心框架&#xff0c;它为构建锁和其他同步器提供了基础支持。ReentrantLock 和…

从 0 到 1,用 Python 构建超实用 Web 实时聊天应用

从 0 到 1&#xff0c;用 Python 构建超实用 Web 实时聊天应用 本文深入剖析如何运用 Python 的 Flask 框架与 SocketIO 扩展&#xff0c;搭建一个功能完备的 Web 实时聊天应用。从环境搭建、前后端代码实现&#xff0c;到最终运行展示&#xff0c;逐步拆解关键步骤&#xff0…

Vue2+Element实现Excel文件上传下载预览【超详细图解】

目录 一、需求背景 二、落地实现 1.文件上传 图片示例 HTML代码 业务代码 2.文件下载 图片示例 方式一&#xff1a;代码 方式二&#xff1a;代码 3.文件预览 图片示例 方式一&#xff1a;代码 方式二&#xff1a;代码 一、需求背景 在一个愉快的年后&#xff…

[记录贴] 火绒奇怪的进程保护

最近一次更新火绒6.0到最新版&#xff0c;发现processhacker的结束进程功能无法杀掉火绒的进程&#xff0c;弹窗提示如下&#xff1a; 可能是打开进程时做了权限过滤&#xff0c;火绒注册了两个回调函数如下&#xff1a; 但奇怪的是&#xff0c;在另外一台机器上面更新到最新版…

【蓝桥杯】每天一题,理解逻辑(1/90)【Leetcode 移动零】

文章目录 题目解析讲解算法原理【双指针算法思路】(数组下标充当指针)如何划分和执行过程大致 代码详情 题目解析 题目链接&#xff1a;https://leetcode.cn/problems/move-zeroes/description/ 题目意思解析 把所有的零移动到数组的末尾保持非零元素的相对顺序 理解了这两层…

pycharm远程连接服务器运行pytorch

Linux部署pytorch 背景介绍 不同的开源代码可能需要不同的实验环境和版本&#xff0c;这时候的确体现出Anaconda管理环境的好处了&#xff0c;分别搞一个独立环境方便管理。 有的教程建议选择较旧的版本&#xff0c;但笔者建议在条件允许的情况下安装最新版&#xff0c;本次…

java练习(41)

ps&#xff1a;题目来自力扣 最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 import java.util.Arrays;class Solut…

PDF扫描档智能方向识别:多模型投票机制的实践测试 救活古典书籍

2025-02-22 20:10物联全栈123 尊敬的诸位&#xff01;我是一名物联网工程师。关注我&#xff0c;持续分享最新物联网与AI资讯和开发实战。期望与您携手探寻物联网与 AI 的无尽可能 RAG知识库搭建的过程中&#xff0c;扫描档pdf的支持和准确率一直是个大家都不愿主动提起的事情…

轻松搭建:使用Anaconda创建虚拟环境并在PyCharm中配置

一、使用Anaconda创建虚拟环境 1. 安装Anaconda 2..conda常用的命令 3. 创建虚拟环境-以搭建MachineVision为例 4. 激活虚拟环境 5. 安装依赖包 二、PyCharm配置环境 在进行Python项目开发时&#xff0c;合理的环境管理是必不可少的&#xff0c;特别是当你在多个项目中…

驱动开发系列39 - Linux Graphics 3D 绘制流程(二)- 设置渲染管线

一:概述 Intel 的 Iris 驱动是 Mesa 中的 Gallium 驱动,主要用于 Intel Gen8+ GPU(Broadwell 及更新架构)。它负责与 i915 内核 DRM 驱动交互,并通过 Vulkan(ANV)、OpenGL(Iris Gallium)、或 OpenCL(Clover)来提供 3D 加速。在 Iris 驱动中,GPU Pipeline 设置 涉及…

MinIO整合SpringBoot实现文件上传、下载

文章目录 配置1. 部署MinIO服务2. 整合SpringBoot 功能实现1. 文件上传2. 文件下载 总结 配置 1. 部署MinIO服务 这里以docker为例&#xff1a; 安装minio命令docker run -p 9000:9000 -p 9001:9001 \ --name minio \ -v /path/to/data:/data \ -e "MINIO_ROOT_USERmin…

FreeRTOS(3)列表List

在 FreeRTOS 的源码中大量地使用了列表和列表项&#xff0c;因此想要深入学习 FreeRTOS&#xff0c;列表和列表项是必备的基础知识。这里所说的列表和列表项&#xff0c;是 FreeRTOS 源码中 List 和 List Item 的 直译&#xff0c;事实上&#xff0c; FreeRTOS 中的列表和列表项…

C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化

欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 1、本节实现的内容 上一节课,我们在Blend软件中导出经纬球模型时,遇到了经纬球法线导致我们在游戏中模型光照显示问题,我们在Blender软件中可以通过…

Harmony开发笔记(未完成)

一、感想 作为一名拥有11年经验的Android开发者&#xff0c;我亲历了Android从高速发展到如今面临“僧多粥少”的过程。技术的世界瞬息万变&#xff0c;没有一种技术能够让人依赖一辈子。去年初&#xff0c;我自学了鸿蒙系统&#xff0c;并顺利通过了鸿蒙官方的初级和高级认。…

【Java面试】创建线程有哪几种方式

目录 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口和FutureTask 4.使用Executor框架&#xff08;线程池&#xff09; Java并发编程中不同接口和类之间的关系 总结 1.继承Thread类 优点&#xff1a; 简单直观。直接继承Thread类&#xff0c;可以方便地使用Threa…