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

手机免费网站建设免费无代码开发平台

手机免费网站建设,免费无代码开发平台,不成立公司怎么做企业网站,武汉灯箱广告公司不管风吹浪打,胜似闲庭信步! 1.选择排序: 不管风吹浪打,胜似闲庭信步!1.选择排序: // 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告,使得可以使用像 scanf 这样的函数而不产生警告…

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

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.二维数组



http://www.dinnco.com/news/56532.html

相关文章:

  • 广州乐地网站建设拉新推广怎么找渠道
  • 怎么可以预览自己做的网站跨境电商平台排行榜前十名
  • 南桥网站建设每日精选12条新闻
  • 合肥有什么好的网站建设公司网站搜索量查询
  • 北京新疫情最新公布消息网站推广专家十年乐云seo
  • 电子商务网站分类百度竞价排名的优缺点
  • 做的网站被公安局查出漏洞域名ip查询
  • 湛江seo网站推广高端定制网站建设
  • 东莞市品牌网站建设平台网站入口
  • 网站制作设计方案哈尔滨优化调整人员流动管理
  • 优门设 网站郑州seo优化阿亮
  • 有做直播网网站的公司没有万网阿里云域名查询
  • 吉林企业做网站速推网
  • 寻找常州微信网站建设搜索引擎的使用方法和技巧
  • 柳州企业网站开发公司优化大师官网入口
  • 怎么做卡蜜网站seo外包公司多吗
  • 网站服务器 2核网站安全检测在线
  • 网站设计用那个软件网店seo名词解释
  • php网站开发需要学什么软件如何建立自己的网页
  • 网站开发做前端还是后端重庆网络推广
  • 政府网站建设规范重庆关键词优化
  • 黄石专业网站建设推广搜索引擎优化时营销关键词
  • 凡科做网站关键词竞价排名的定义
  • 企业做网站需要的资料百度移动端优化
  • 那些开店的网站是自己做的吗统计工具
  • 高端网站制作百度信息流广告怎么投放
  • 金融网站怎么做南宁百度推广排名优化
  • 产品网站开发计划表如何创建自己的卡网
  • 承德网站制作的流程新郑网络推广外包
  • wordpress多站点怎么修改域名seo引擎搜索网址