ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:19.28KB ,
资源ID:28312570      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28312570.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(科大C语言数组大作业.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

科大C语言数组大作业.docx

1、科大C语言数组大作业#include#include#include#includeint n=10;void sort(int r,int n);/冒泡排序void insert1(int arr,int n,int element,int n0);/插入1:在指定位置插入,n0是插入的位置void insert2(int arr,int element,int n);/插入2:在有序数列中插入void reverse(int arr,int a,int b);/逆置数组,从a到bvoid zuoxuan(int arr,int n,int k);/左旋数组void youxuan(int

2、arr,int n,int k);/右旋数组void output(int arr,int n);/打印数组void jiaohuanpaixu(int arr,int n);/交换排序void delect1(int arr,int n,int n0);/删除指定下标的元素void delect2(int arr,int n,int n0);/删除指定值void delect3(int arr,int a,int b,int n);/删除指定下标区间的元素int judge1(int arr,int n);/判断是否是升序,并输出是否升序,其中变量n是记录数组的长度int judge2(in

3、t arr,int n);/判断是否是降序排列void judge3(int arr,int n);/判断数组元素是否都相等double aver(int arr,int n);/求平均数,返回平均数int Max(int arr,int n);/求最大值int Min(int arr,int n);/求最小值double fangcha(int arr,int n);/求方差void xuanze_paixu(int arr,int n);/选择排序void putongchazhao(int arr,int n,int n0);/普通查找void erfenchazhao(int arr,

4、int k,int n);/二分查找void josephus(int die,int n,int m,int s);/约瑟夫环void goldbach(int n);/验证哥德巴赫猜想void shujutianchong1(int arr,int n,int a);/用小于a的随机数填充数组void shujutianchong2(int arr,int n);/从键盘输入void shujutianchong3(int arr,int n,int n0);/整个数组填同一个值void shujutianchong4(int arr,int a,int b,int n);/等差数列填充数

5、组double junfangcha(int arr,int n);/求均方差void sort(int r,int n) int i,j,lastExchangeIndex; int temp; i=n; while(i0) lastExchangeIndex=0; for(j=1;jrj) temp=rj; rj=rj-1; rj-1=temp; lastExchangeIndex=j; i=lastExchangeIndex; void insert1(int arr,int n,int element,int n0)/n是长度,n0是插入下标 int i=0; for(i=n;in0;

6、i-) arri=arri-1; arrn0=element;void insert2(int arr,int element,int n)/n是数组的长度,因为有插入函数,所以数组长度定义时候要大些 int i,j; for(i=0;ii+1;j-) arrj=arrj-1; arri+1=element; break; if(arrielement)|(arrielement)&(arri+1i+1;j-) arrj=arrj-1; arri+1=element; if(elementarrn-1) arrn=element; void reverse(int arr,int a,int

7、b) int i,t; int j=b; for(i=a;ij;i+,j-) t=arri; arri=arrj; arrj=t; void zuoxuan(int arr,int n,int k) reverse(arr,0,k-1); reverse(arr,k,n-1); reverse(arr,0,n-1);void youxuan(int arr,int n,int k) zuoxuan(arr,n,n-k);void output(int arr,int n) int i; for(i=0;in;i+) printf(%2dt,arri); printf(n);void jiaoh

8、uanpaixu(int arr,int n) int temp; int i,j; for(i=0;in-1;i+) for(j=i+1;jarrj) temp=arri; arri=arrj; arrj=temp; void delect1(int arr,int n, int n0)/注意数组长度的变化,n0是下标,n是数组长度 int i; for(i=n0;in;i+) arri=arri+1;void delect2(int arr,int n,int n0) int i; for(i=0;in;i+) if(arri=n0) delect1(arr,n,i); void dele

9、ct3(int arr,int a,int b,int n) int i; for(i=a;ib+1;i+) arri=arri+b-a+1;int judge1(int arr,int n)/判断是否是升序,并输出是否升序,其中变量n是记录数组的长度 int i,flag; for(i=0,flag=0;iarri+1) break; if(flag=n-1) printf(数组是升序排列,可以执行二分查找,有序数列中插入等操作n); if(flagn-1) printf(数组不是升序排列,不可以进行二分查找,有序数列中插入等操作n); return flag;int judge2(int

10、arr,int n)/判断是否是降序排列 int i,flag; for(i=0,flag=0;in;i+,flag+) if(arriarri+1) break; if(flag=n-1) printf(数组是降序排列,可以执行二分查找,有序数列中插入等操作n); if(flagn-1) printf(数组不是降序排列,不可以进行二分查找,有序数列中插入等操作n); return flag;void judge3(int arr,int n)/判断数组元素是否都相等 int i,flag; for(i=0,flag=0;in;i+,flag+) if(arri!=arri+1) break;

11、 if(flag=n-1) printf(数组元素全相等n); if(flagn-1) printf(数组元素不全相等n);double aver(int arr,int n)/求平均数,返回平均数 int i,sum=0; double aver=0; for(i=0;in;i+) sum+=arri; aver=(double)sum)/n; return aver;int Max(int arr,int n)/求最大值 int i,max_=arr0; for(i=0;imax_) max_=arri; return max_;int Min(int arr,int n)/求最小值 in

12、t i,min_=arr0; for(i=0;in;i+) if(arrimin_) min_=arri; return min_;double fangcha(int arr,int n)/求方差 double average=aver(arr,n); double fangcha_=0; int i; for(i=0;in;i+) fangcha_+=(arri-average)*(arri-average); fangcha_=fangcha_/n; return fangcha_;double junfangcha(int arr,int n)/求均方差 double junfangc

13、ha_; junfangcha_=pow(fangcha(arr,n),0.5); return junfangcha_;void xuanze_paixu(int arr,int n)/选择排序 int i,j,temp,min; for(i=0;in-1;i+) min=i; for(j=i+1;jarrj) min=j; if(min!=i) temp=arri; arri=arrmin; arrmin=temp; void putongchazhao(int arr,int n,int n0) int i; for(i=0;in;i+) if(arri=n0) break; if(in

14、) printf(找到元素,下标为%dn,i); if(i=n) printf(未找到元素n); void erfenchazhao(int arr,int k,int n) int low=0,high=n-1; int mid; while(lowarrmid) low=mid+1; else if(karrmid) high=mid-1; else break; if(low=high) printf(找到元素,下标为:%dn,mid); else printf(未找到n);void josephus(int die,int n,int m,int s) int i,n0; int su

15、m; for(i=0;in+1;i+) diei=0; i=sum=0; for(n0=s;sumn;n0=(n0+1)%n) if(dien0=0) i+; if(i=m) i=0; sum+; dien0=sum; void goldbach(int n) int i,i0,i_,i_0; for(i=3;i=(n/2);i+=2) for(i0=2;i0sqrt(i) i_=n-i; for(i_0=2;i_0sqrt(i) printf(n=%d+%dn,i,i_); void shujutianchong1(int arr,int n,int a,int b) int i; sran

16、d(time(NULL); for(i=0;in;i+) arri=rand()%(b-a)+a;void shujutianchong2(int arr,int n)/从键盘输入 int i; printf(请输入%d个数填充数组:,n); for(i=0;in;i+) scanf(%d,&arri);void shujutianchong3(int arr,int n,int n0)/整个数组填同一个值 int i; for(i=0;in;i+) arri=n0;void shujutianchong4(int arr,int a,int b,int n)/等差数列填充数组 int c=(

17、b-a)/(n-1),i; for(i=0;in;i+) arri=a+c*i;main() int arr100=0; int i=1,i1=1,i2=1,i3=1,i4=1,i5=1,i6=1,i7=1,i7_=1,i8=1,a,b,n0,a0,b0,k,a_,n_; int i_,m,n,s; int die100=0; int i0,j,k0,count=0; int a1100; int element; while(i) printf(*主菜单*n); printf(*0.退出*n); printf(*1.配置系统参数*n); printf(*2.生成样本数据*n); printf

18、(*3.显示数组*n); printf(*4.删除*n); printf(*5.插入*n); printf(*6.统计*n); printf(*7.查找*n); printf(*8.判断*n); printf(*9.排列数组元素*n); printf(*10.数组的其他应用*n); printf(请输入:); scanf(%d,&i); switch(i) case 0: ; break; case 1: printf(请输入数组大小:); scanf(%d,&n); break; case 2: while(i1) printf(*生成样本数据*n); printf(*1.用指定范围的随机数

19、填充数组*n); printf(*2.键盘输入*n); printf(*3.整个数组填同一个数*n); printf(*4.用等差数列填充数组*n); printf(*0.退出*n); scanf(%d,&i1); switch(i1) case 1: printf(请输入随机数的下限和上限:); scanf(%d%d,&a,&b); shujutianchong1(arr,n,a,b); break; case 2:shujutianchong2(arr,n);break; case 3: printf(请输入想填充的数据:); scanf(%d,&n0); shujutianchong3(

20、arr,n,n0); break; case 4: printf(请输入等差数列的起始项和最后一项:); scanf(%d%d,&a0,&b0); shujutianchong4(arr,a0,b0,n); break; case 0: ;break; default: printf(请重新输入); break; case 3:output(arr,n);break; case 4: while(i2) printf(*删除*n); printf(*1.删除指定下标元素*n); printf(*2.删除指定值的元素*n); printf(*3.删除指定下标区间的元素*n); printf(*0

21、.退出*n); scanf(%d,&i2); switch(i2) case 1: printf(请输入想删除的元素对应下标:); scanf(%d,&n0); delect1(arr,n,n0); n=n-1; break; case 2: printf(请输入想删除的元素:); scanf(%d,&n0); delect2(arr,n,n0); n=n-1; break; case 3: printf(请输入删除的区间:); scanf(%d%d,&a,&b); delect3(arr,a,b,n); n=n-(b-a)-1; break; case 0: ;break; default:

22、printf(请重新输入:); break; case 5: while(i3) printf(*插入*n); printf(*1.指定位置插入*n); printf(*2.有序数列中插入*n); printf(*0.退出*n); scanf(%d,&i3); switch(i3) case 1: printf(请输入插入位置和插入值:); scanf(%d%d,&n0,&element); insert1(arr,n,element,n0); n=n+1; break; case 2: if(judge1(arr,n)n)|(judge2(arr,n)n) break; printf(请输入插入的值:); scanf(%d,&element); insert2(arr,element,n); n=n+1; break; case 0: ;break; default :printf(请重新输入:); break; case 6: while(i4) printf(*统计*n); printf(*1.最大值*n); printf(*2.最小值*n); printf(*3.平均值*n); printf(*4.方差和均方差*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1