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

硕成C语言24

不管风吹浪打,胜似闲庭信步!

1.选择排序:

不管风吹浪打,胜似闲庭信步!1.选择排序:
// 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告,使得可以使用像 scanf 这样的函数而不产生警告
#define _CRT_SECURE_NO_WARNINGS
// 包含标准输入输出库,这样就可以使用 scanf 和 printf 等函数
#include <stdio.h>
// 定义一个常量 N,其值为 6,表示数组的大小
#define N 6// 主函数,程序的入口点
int main() {// 定义变量:// i 和 j 用于循环计数// min 用于记录当前最小值的下标// t 用于交换元素时的临时存储// a[N] 是一个包含 N 个整数的数组int i, min, t, a[N], j;// 第一个 for 循环,用于输入数组元素for (i = 0; i < N; i++) {// 使用 scanf 函数从标准输入读取一个整数,并将其存储到数组 a 的第 i 个位置scanf("%d", &a[i]);}// 选择排序的外层循环,控制排序的轮数,需要进行 N - 1 轮for (i = 0; i < N - 1; i++) {// 内层循环,用于比较当前元素和其后的所有元素for (j = i + 1; j < N; j++) {// 假设当前未排序部分的第一个元素(下标为 i)是最小值min = i;// 如果发现后面的元素(下标为 j)比当前假设的最小值小if (a[min] > a[j]) {// 更新最小值的下标为 jmin = j;}// 如果最小值的下标不是 i,说明找到了比 a[i] 更小的元素if (min != i) {// 使用临时变量 t 交换 a[i] 和 a[min] 的值t = a[i];a[i] = a[min];a[min] = t;}}}// 第三个 for 循环,用于输出排序后的数组元素for (i = 0; i < N; i++) {// 使用 printf 函数将数组 a 的第 i 个元素输出到标准输出,并在后面加上一个空格printf("%d ", a[i]);}// 程序正常结束,返回 0 表示成功return 0;
}解释:
选择排序的核心就是每一轮都从剩下的卡片中找出数字最小的那张,然后和当前轮次最前面的卡片交换位置。
第一轮(i = 0)•	假设最小数字卡片:刚开始,你站在这沓卡片的最前面,先假设当前看到的第一张卡片(也就是 a[0],数字是 5)是这一沓卡片里数字最小的,把这张卡片的位置记为 min = 0。
•	寻找真正最小数字卡片:然后你从第二张卡片(a[1])开始往后看,和你假设的最小数字卡片比较:
o	看到第二张卡片数字是 3,比你假设的 5 小,那你就更新认为第二张卡片才是最小的,把最小卡片的位置更新为 min = 1。
o	接着看第三张卡片数字是 4,比 3 大,最小卡片位置还是 min = 1 不变。
o	再看第四张卡片数字是 1,比 3 小,更新最小卡片位置为 min = 3。
o	第五张卡片数字是 2,比 1 大,最小卡片位置还是 min = 3。
o	第六张卡片数字是 6,比 1 大,最小卡片位置依旧是 min = 3。
•	交换卡片位置:经过一轮比较,发现最小数字卡片其实是第四张(位置 min = 3),和你最开始假设的第一张(位置 i = 0)不一样,那就把第一张和第四张卡片交换位置。交换后,这沓卡片顺序变成了 [1, 3, 4, 5, 2, 6]。2. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中// 该宏定义用于在使用 Visual Studio 等编译器时,忽略与安全相关的警告。
// 例如,允许使用像 scanf 这样可能存在安全风险的函数而不产生编译警告。
#define _CRT_SECURE_NO_WARNINGS
// 引入标准输入输出库,使得程序可以使用如 scanf 和 printf 等标准输入输出函数。
#include <stdio.h>
// 定义一个常量 N ,其值为 5 ,这里 N 代表要输入的初始有序数组的元素数量。
#define N 5// 主函数,程序的入口点,程序从这里开始执行。
int main() {// 声明变量 i 用于循环计数,控制数组元素的访问和操作。// 声明变量 k ,用于存储用户额外输入的一个整数,后续会将其插入到数组中。// 声明一个包含 N + 1 个整数的数组 a ,多出来的一个位置是为了插入额外输入的整数 k 。int i, k, a[N + 1];// 此 for 循环用于输入初始的有序数组元素。// 循环从 i 等于 0 开始,每次循环 i 增加 1 ,直到 i 小于 N 不成立为止。// 在每次循环中,使用 scanf 函数从标准输入(通常是键盘)读取一个整数,// 并将其存储到数组 a 的第 i 个位置。for (i = 0; i < N; i++) {scanf("%d", &a[i]);}// 使用 scanf 函数从标准输入读取一个额外的整数,并将其存储到变量 k 中。scanf("%d", &k);// 从数组的最后一个元素开始向前遍历,目的是找到合适的位置插入整数 k 。// 循环从 i 等于 N - 1 开始(因为数组下标从 0 开始,所以最后一个元素下标是 N - 1 ),// 每次循环 i 减 1 ,直到 i 小于 0 不成立为止。for (i = N - 1; i >= 0; i--) {// 如果变量 k 的值小于数组 a 中第 i 个元素的值。if (k < a[i]) {// 将数组 a 中第 i 个元素的值赋给第 i + 1 个位置,即把元素向后移动一位,为插入 k 腾出空间。a[i + 1] = a[i];}else {// 如果 k 不小于当前元素 a[i] ,说明已经找到了插入 k 的合适位置,跳出循环。break;}}// 循环结束后,i + 1 就是找到的插入位置,将变量 k 的值赋给数组 a 的第 i + 1 个位置。a[i + 1] = k;// 此 for 循环用于输出插入 k 后的数组元素。// 循环从 i 等于 0 开始,每次循环 i 增加 1 ,直到 i 小于 N + 1 不成立为止。// 在每次循环中,使用 printf 函数将数组 a 的第 i 个元素输出到标准输出(通常是屏幕),// 并在元素后面输出一个空格,用于分隔不同的元素。for (i = 0; i < N + 1; i++) {printf("%d ", a[i]);}// 主函数返回 0 ,表示程序正常结束。在 C 语言中,返回 0 通常表示程序执行成功。return 0;
}3.二维数组


解释:
选择排序的核心就是每一轮都从剩下的卡片中找出数字最小的那张,然后和当前轮次最前面的卡片交换位置。

第一轮(i = 0


 

  • 假设最小数字卡片:刚开始,你站在这沓卡片的最前面,先假设当前看到的第一张卡片(也就是 a[0],数字是 5)是这一沓卡片里数字最小的,把这张卡片的位置记为 min = 0。
  • 寻找真正最小数字卡片:然后你从第二张卡片(a[1])开始往后看,和你假设的最小数字卡片比较:
    • 看到第二张卡片数字是 3,比你假设的 5 小,那你就更新认为第二张卡片才是最小的,把最小卡片的位置更新为 min = 1。
    • 接着看第三张卡片数字是 4,比 3 大,最小卡片位置还是 min = 1 不变。
    • 再看第四张卡片数字是 1,比 3 小,更新最小卡片位置为 min = 3。
    • 第五张卡片数字是 2,比 1 大,最小卡片位置还是 min = 3。
    • 第六张卡片数字是 6,比 1 大,最小卡片位置依旧是 min = 3。
  • 交换卡片位置:经过一轮比较,发现最小数字卡片其实是第四张(位置 min = 3),和你最开始假设的第一张(位置 i = 0)不一样,那就把第一张和第四张卡片交换位置。交换后,这沓卡片顺序变成了 [1, 3, 4, 5, 2, 6]。



2. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

// 该宏定义用于在使用 Visual Studio 等编译器时,忽略与安全相关的警告。// 例如,允许使用像 scanf 这样可能存在安全风险的函数而不产生编译警告。#define _CRT_SECURE_NO_WARNINGS// 引入标准输入输出库,使得程序可以使用如 scanf 和 printf 等标准输入输出函数。#include <stdio.h>// 定义一个常量 N ,其值为 5 ,这里 N 代表要输入的初始有序数组的元素数量。#define N 5// 主函数,程序的入口点,程序从这里开始执行。int main() {// 声明变量 i 用于循环计数,控制数组元素的访问和操作。// 声明变量 k ,用于存储用户额外输入的一个整数,后续会将其插入到数组中。// 声明一个包含 N + 1 个整数的数组 a ,多出来的一个位置是为了插入额外输入的整数 k 。int i, k, a[N + 1];// 此 for 循环用于输入初始的有序数组元素。// 循环从 i 等于 0 开始,每次循环 i 增加 1 ,直到 i 小于 N 不成立为止。// 在每次循环中,使用 scanf 函数从标准输入(通常是键盘)读取一个整数,// 并将其存储到数组 a 的第 i 个位置。for (i = 0; i < N; i++) {scanf("%d", &a[i]);}// 使用 scanf 函数从标准输入读取一个额外的整数,并将其存储到变量 k 中。scanf("%d", &k);// 从数组的最后一个元素开始向前遍历,目的是找到合适的位置插入整数 k 。// 循环从 i 等于 N - 1 开始(因为数组下标从 0 开始,所以最后一个元素下标是 N - 1 ),// 每次循环 i 减 1 ,直到 i 小于 0 不成立为止。for (i = N - 1; i >= 0; i--) {// 如果变量 k 的值小于数组 a 中第 i 个元素的值。if (k < a[i]) {// 将数组 a 中第 i 个元素的值赋给第 i + 1 个位置,即把元素向后移动一位,为插入 k 腾出空间。a[i + 1] = a[i];}else {// 如果 k 不小于当前元素 a[i] ,说明已经找到了插入 k 的合适位置,跳出循环。break;}}// 循环结束后,i + 1 就是找到的插入位置,将变量 k 的值赋给数组 a 的第 i + 1 个位置。a[i + 1] = k;// 此 for 循环用于输出插入 k 后的数组元素。// 循环从 i 等于 0 开始,每次循环 i 增加 1 ,直到 i 小于 N + 1 不成立为止。// 在每次循环中,使用 printf 函数将数组 a 的第 i 个元素输出到标准输出(通常是屏幕),// 并在元素后面输出一个空格,用于分隔不同的元素。for (i = 0; i < N + 1; i++) {printf("%d ", a[i]);}// 主函数返回 0 ,表示程序正常结束。在 C 语言中,返回 0 通常表示程序执行成功。return 0;}

3.二维数组



相关文章:

硕成C语言24

不管风吹浪打&#xff0c;胜似闲庭信步&#xff01; 1.选择排序&#xff1a; 不管风吹浪打&#xff0c;胜似闲庭信步&#xff01;1.选择排序&#xff1a; // 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告&#xff0c;使得可以使用像 scanf 这样的函数而不产生警告…...

《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例

第一章&#xff1a;模型加载与基础生成 1.1 基础模型加载 from diffusers import StableDiffusionPipeline import torch# 加载SD 1.5基础模型&#xff08;FP32精度&#xff09; pipe StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",…...

Linux下为Intel核显安装OpenCL

实验环境 CPU&#xff1a;N5105运行内存&#xff1a;32G系统&#xff1a;almalinux 8 &#xff08;类似CentOS系统&#xff09; 安装过程 检查i915驱动 输入命令dmesg | grep i915查看驱动的加载信息。 我这里没接显示器&#xff0c;输出正确的驱动加载信息如下图所示&…...

用deepseek学大模型04-机器学习建模过程

https://metaso.cn/s/7tEmBHr 目前已经学完深度学习的数学基础&#xff0c;给出机器学习建模的基本过程 好的&#xff0c;我现在需要回答用户的问题&#xff1a;已经学完深度学习的数学基础&#xff0c;现在要给出机器学习建模的基本过程。我需要结合我搜索到的资料来构建一个详…...

【ClickHouse】Ubuntu下离线安装ClickHouse数据库并使用DBeaver连接

目录 0. 安装前准备1 安装ClickHouse1.1 下载安装包1.2 离线安装1.3 配置密码1.4 启动ClickHouse服务 2 DBeaver连接配置2.1 下载ClickHouse驱动2.2 DBeaver配置2.2.1 配置主要参数2.2.2 配置驱动 2.3 常见问题处理2.3.1 修改远程登录配置2.3.2 更新驱动配置 0. 安装前准备 有…...

Unity3D实现接入DeepSeek对话

系列文章目录 unity知识点 文章目录 系列文章目录👉前言👉一、使用第一步👉1-1、登录注册DeepSeek👉1-2、创建API-key👉二、使用第二步👉三、使用第三步👉壁纸分享👉总结👉前言 随着人工智能和机器学习技术的不断进步,DeepSeek的未来发展趋势充满了无限可能…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析②】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase02 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-002测试用例 用例ID测试场景验证要点参考条款预期…...

前端新手必看:10 大 UI 组件库全面解析,快速搭建高质量 Web 应用」 「从零开始:Vue 和 React 最受欢迎的 UI 组件库入门指南」 「超实用!PC 端和移动端 UI 组件库推荐与实战

前端新手必看&#xff1a;10 大 UI 组件库全面解析&#xff0c;快速搭建高质量 Web 应用 目录 什么是 UI 组件库&#xff1f;为什么需要 UI 组件库&#xff1f;PC 端 UI 组件库推荐 Ant DesignElement UIVuetifyBootstrapVueiView (View UI)Quasar FrameworkMaterial-UI (MUI…...

【MySQL高级】17 - MySQL中常用工具

1. mysql 该mysql不是指mysql服务&#xff0c;而是指mysql的客户端工具。语法&#xff1a; mysql [options] [database]1.1 连接选项 参数 &#xff1a; -u, --username 指定用户名-p, --password[name] 指定密码-h, --hostname 指定服务器IP或域名-P, --por…...

【Linux】Linux 文件系统——有关 inode 不足的案例

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天周二了&#xff0c;明天星期三&#xff0c;还有三天就是星期五了&#xff0c;坚持住啊各位&#xff01;&#xff01;&#xff01;&#x1f606; 本文是对之前Linux文件权限中的inode号进行实例讨论&#xff0c;看到博客有错误…...

计算机视觉:卷积神经网络(CNN)基本概念(二)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…...

【第7章:注意力机制与Transformer模型—7.4 NLP领域的BERT、GPT系列模型】

当你在2017年第一次听说Transformer时,可能不会想到这个模型会在短短三年内彻底改变NLP领域。想象一下,原本需要数周训练的翻译模型,现在用Transformer架构几天就能达到更好的效果;那些让程序员们头疼的梯度消失问题,突然变得不再重要。这一切的魔法钥匙,都藏在一个叫做&…...

[代码调试]安装Text2Image(stable diffusion)模型环境的踩坑记录

文章目录 一、xFormers版本问题1、先确认下自己torch版本所对应的cuda版本2.安装对应版本(1) 到对应官网下载包本地安装(2)代码安装 二、attn_mask尺寸错误三、diffusers四、Huggingface 配置基于stable diffusion预训练模型的环境&#xff0c;记录踩坑记录 一、xFormers版本问…...

大数据SQL调优专题——Flink执行原理

引入 上一篇我们了解了Spark&#xff0c;相比起MapReduce来说&#xff0c;它确实已经快了超级多了&#xff0c;但是人类的欲望是没有止境的&#xff0c;这也是推动人类进步的动力。 Flink就是为了满足实时响应的场景需求诞生的。 其实在Flink之前&#xff0c;实时处理其实已…...

Oracle 12c中在同一组列上创建多个索引

在数据库管理与优化领域&#xff0c;索引是提高查询性能的关键工具之一。然而&#xff0c;在某些情况下&#xff0c;单一类型的索引可能不足以满足所有查询的需求。Oracle 12c引入了一个强大的新特性&#xff1a;允许在同一组列上创建多个索引&#xff0c;但仅一个可见&#xf…...

线程安全的集合类

文章目录 多线程环境使⽤`ArrayList`线程不安全线程安全可以使用 `ReentrantLock` 或 `synchronized`来保护 `ArrayList` 的访问。使用同步包装器使用 `CopyOnWriteArrayList`**“写时复制”机制**多线程环境使⽤队列多线程环境使⽤哈希表HashtableConcurrentHashMapHashMap、H…...

【如何实现 JavaScript 的防抖和节流?】

如何实现 JavaScript 的防抖和节流&#xff1f; 前言 防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是 JavaScript 中优化高频事件处理的两种常用技术。它们可以有效减少事件处理函数的调用次数&#xff0c;提升性能并改善用户体验。本文将详…...

C#中File类的Copy()方法或FileInfo类的CopyTo()方法的参数overwrite取false和true的区别

当调用 System.IO.File.Copy 方法时&#xff0c;第三个参数 overwrite 控制着如果目标位置已经存在同名文件的情况下如何处理。 1、当 overwrite 设置为 true 在这种情况下&#xff0c;即使目标路径下已经有相同名称的文件&#xff0c;该方法也会无条件地覆盖现有的文件。这不…...

力扣 买卖股票的最佳时机

贪心算法典型例题。 题目 做过股票交易的都知道&#xff0c;想获取最大利润&#xff0c;就得从最低点买入&#xff0c;最高点卖出。这题刚好可以用暴力&#xff0c;一个数组中找到最大的数跟最小的数&#xff0c;然后注意一下最小的数在最大的数前面即可。从一个数组中选两个数…...

蚁剑(AutSword)的下载安装与报错解决

蚁剑&#xff08;AutSword&#xff09;的下载安装与报错解决 1.下载 唯一官方github下载地址 GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 2.安装 打开并且进入到下面的界面 下载需要的的版本 进行初始化 3.报错 出现下面的报错 4.解决方法 出现上面报错…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...

aurora与pcie的数据高速传输

设备&#xff1a;zynq7100&#xff1b; 开发环境&#xff1a;window&#xff1b; vivado版本&#xff1a;2021.1&#xff1b; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程&#xff0c;pc通过pcie传输给fpga&#xff0c;fpga再通过aur…...