寒假作业-day5

1>现有无序序列数组为23,24,12,5,33,5347,请使用以下排序实现编程
函数1:请使用冒泡排序实现升序排序
函数2:请使用简单选择排序实现升序排序
函数3:请使用直接插入排序实现升序排序
函数4:请使用插入排序实现升序排序

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>void bubble(int a[],int n){for(int i=1;i<n;i++){for(int j=0;j<n-i;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}
}
void simple(int b[],int n){for(int i=0;i<n-1;i++){int min=i;for(int j=i+1;j<n;j++){if(b[min]>b[j])min=j;}if(min!=i){int temp=b[min];b[min]=b[i];b[i]=temp;}}
}
void dir_insert(int c[],int n){int j;for(int i=1;i<n;i++){int temp=c[i];for(j=i-1;j>=0&&c[j]>temp;j--){c[j+1]=c[j];}c[j+1]=temp;}
}int sort(int arr[],int low,int high){int key=arr[low];while(low<high){while(low<high&&key<=arr[high])high--;arr[low]=arr[high];while(low<high&&key>=arr[low])low++;arr[high]=arr[low];}arr[low]=key;return low;
}
void quick(int arr[],int low,int high){if(low>=high)return;int mid=sort(arr,low,high);quick(arr,low,mid-1);quick(arr,mid+1,high);
}void output(int arr[],int len){for(int i=0;i<len;i++)printf("%d\t",arr[i]);puts("");
}
int main(int argc,const char *argv[]){int a[]={23,24,12,5,33,5,34,7};int len=sizeof(a)/sizeof(a[0]);bubble(a,len);output(a,len);int b[]={23,24,12,5,33,5,34,7};simple(b,len);output(b,len);int c[]={23,24,12,5,33,5,34,7};dir_insert(c,len);output(c,len);int d[]={23,24,12,5,33,5,34,7};quick(d,0,len-1);output(d,len);return 0;
}

结果:

2>请编程实现
写个递归函数 DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如:调用 DigitSum(1729),则返回 1+7+2+9,它的和是 19
输入1729,输出 19

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>int DigitSum(int n){if(n==0)return 0;int temp=n;temp%=10;n/=10;return temp+DigitSum(n);
}int main(int argc,const char *argv[]){int num=1729;printf("%d\n",DigitSum(num));return 0;
}

结果:

3>请编程实现
写一个宏,可以将一个 int 型整数的二进制位的奇数位和偶数位交换

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SWAP_BIT(n) (n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))int main()
{int a = 10;//00000000000000000000000000001010 ->10// 其奇偶位交换后得 ://00000000000000000000000000000101 ->5SWAP_BIT(a);printf("a=%d\n", a);return 0;
}

结果:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金融行业专题|证券超融合架构转型与场景探索合集(2023版)

更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中&#xff0c;传统架…

数据库表操作

建表删表 建表语句 --建表语句 create table Student (ID INTEGER constraint Student_KEY_1 primary key,--设定主键&#xff0c;同时会自动创建唯一索引NAME VARCHAR2(50) NOT NULL , --设定非空SEX CHAR(1) constraint SEX_CH…

ctfshow-命令执行(web118-web122)

web118 是一个窗口 查看源码 发现是system($code) 命令执行 经过测试禁用了很多东西 很多很多 $IFS可以 思路就是使用系统变量 构造我需要的poc 这些都是系统的环境变量 这是答案${PATH:~A}${PWD:~A}$IFS????.??? 解释一下 PATH变量输出结尾一般都是n 因为网站默认根目…

解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题

目录 一 问题描述 二 解决方案 三 方案来源 四 参考资料 & AI工具 一 问题描述 为了方便进行收藏夹同步&#xff0c;开始从Chrome浏览器切换到Edge浏览器。在使用Edge浏览器过程中发现“每次鼠标点击会出现一个黑色边框”&#xff08;效果如下图所示&#xff09;&#…

使用异步命名管道通信的实例

记录一个使用异步命名管道通信的实例。代码参考了 MSDN 的文档&#xff1a;使用完成例程的命名管道服务器 - Win32 apps | Microsoft Learn。 服务端代码 #include <windows.h> #include <stdio.h> #include <tchar.h> #include <strsafe.h>#define…

containerd中文翻译系列(十五)转运服务

传输服务是一种简单灵活的服务&#xff0c;可用于在源和目的地之间传输人工制品对象。灵活的应用程序接口&#xff08;API&#xff09;允许传输接口的每个实施方案决定是否可以在源和目的地之间进行传输。这样&#xff0c;实现者就可以直接添加新功能&#xff0c;而无需对应用程…

高斯伪谱C++封装库开源!

Windows x64/86 C无依赖运行高斯伪谱法求解最优控制问题&#xff0c;你只需要ElegantGP! Author: Y. F. Zhang His Github: https://github.com/ZYunfeii 写在前面 这个库在你下载它的那一时刻起不再依赖任何其他代码&#xff0c;直接可用来构建C的最优控制问题并进行求解。…

机器学习--K-近邻算法常见的几种距离算法详解

文章目录 距离度量1 欧式距离(Euclidean Distance)2 曼哈顿距离(Manhattan Distance)3 切比雪夫距离 (Chebyshev Distance)4 闵可夫斯基距离(Minkowski Distance)5 标准化欧氏距离 (Standardized EuclideanDistance)6 余弦距离(Cosine Distance)7 汉明距离(Hamming Distance)【…

一起玩儿物联网人工智能小车(ESP32)——57. SPI总线协议初探(一)

摘要&#xff1a;介绍SPI总线的基本知识 前面已经学习过IIC总线协议&#xff0c;今天开始介绍另一个总线协议——SPI。SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是由Motorola提出的一种高速、全双工、同步的通信总线。并且在芯片的管脚…

防静电地板行业研究:市场需求不断的扩大

防静电地板又叫做耗散静电地板&#xff0c;是一种地板&#xff0c;当它接地或连接到任何较低电位点时&#xff0c;使电荷能够耗散&#xff0c;以电阻在10的5次方到10的9次方欧姆之间为特征。 目前防静电地板产业还没有集中完成规模化&#xff0c;标准化&#xff0c;规范化&…

c++阶梯之类与对象(中)< 续集 >

前文&#xff1a; c阶梯之类与对象&#xff08;上&#xff09;-CSDN博客 c阶梯之类与对象&#xff08;中&#xff09;-CSDN博客 前言&#xff1a; 在上文中&#xff0c;我们学习了类的六个默认成员函数之构造&#xff0c;析构与拷贝构造函数&#xff0c;接下来我们来看看剩下…

堆排序-Python实现

简述 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构所设计的一种排序算法。堆排序是一种选择排序&#xff0c;它的最坏&#xff0c;最好&#xff0c;平均时间复杂度均为O(nlogn)&#xff0c;它也是不稳定排序。 堆 堆排…