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

寒假作业-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.lryc.cn/news/296148.html

相关文章:

  • 互联网加竞赛 基于深度学的图像修复 图像补全
  • 用于制作耳机壳的UV树脂耳机壳UV胶价格高不高?
  • 【开源】JAVA+Vue+SpringBoot实现房屋出售出租系统
  • Golang 并发 生产者消费者模式
  • Win32 SDK Gui编程系列之--ListView自绘OwnerDraw
  • 深度学习本科课程 实验5 循环神经网络
  • Redis篇之过期淘汰策略
  • 【Kubernetes】kubectl top pod 异常?
  • 前后端分离项目:前端的文件夹应该叫什么名字,后端呢
  • 2024.2.6
  • 如何在 Microsoft Azure 上部署和管理 Elastic Stack
  • 在Visual Studio中引用和链接OpenSceneGraph (OSG) 库
  • [缓存] - Redis
  • spring boot和spring cloud项目中配置文件application和bootstrap加载顺序
  • AdaBoost算法
  • 基于 elasticsearch v8 的 CRUD 操作及测试用例
  • 深度学习的新进展:解析技术演进与应用前景
  • 【第二届 Runway短视频创作大赛】——截至日期2024年03月01日
  • UniApp 快速上手与深度学习指南
  • 10个简单有效的编辑PDF文件工具分享
  • 电力负荷预测 | 基于GRU门控循环单元的深度学习电力负荷预测,含预测未来(Python)
  • vue 实现 手机号中间4位分格输入框(暂无选中标识
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • PPT录屏功能在哪?一键快速找到它!
  • Linux下的多线程
  • Nginx+React在Docker中实现项目部署
  • Centos 7.5 安装 NVM 详细步骤
  • 【python】绘制春节烟花
  • ChatPromptTemplate和AI Message的用法
  • Terraform实战(三)-在AWS上尝试Terraform的Vault Provider