C语言实习-数组实习.doc_第1页
C语言实习-数组实习.doc_第2页
C语言实习-数组实习.doc_第3页
C语言实习-数组实习.doc_第4页
C语言实习-数组实习.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数组实习姓名:王卓玲 学号:2012012896 实习完成日期:2013-4-8一 实习内容1. 从键盘输入10个整数,将最大数调到最前面,最小数调到最后面。2. 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中3. 从键盘任意输入两个字符串,不用库函数strcat,将两串字符连接起来。4. 输入一个55的数组,分别求其主对角线和次对角线上元素之和5. 由键盘任意输入10个学生的姓名(以拼音形式),将它们以字典顺序从小到大排序。6打印如下形式的杨辉三角1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 17.定义一数组(长度大于10),从键盘输入数组元素的值,完成下面操作: (1)从键盘输入一个数,用顺序查找法找出该数在数组中的位置;或者给出没有找到的信息; (2)对数组的元素从小到大排序; (3)从键盘输入一个数,用折半查找法找出该数在数组中的位置;或者给出没有找的信息。 8. 直接选择排序法。算法描述如下: (1)从n个数中找到最小的数,若此数不是数组的第一个元素,则与第一个元素交换位置; (2)从剩下的n-1个数中找到最小的数,若此数不是数组第二个元素,则与第二个元素交换位置; (3)以此类推,直到完成排序9. 编写程序将两个有序数组归并。例如数组1,3,5和数组2 ,4,6,8,10,归并的结果是1,2,3,4,5,6,8,10 二 实习步骤1#include#define N 101题流程图void main()int i,j,k,m;int aN,t;for(i=0;iN;i+)scanf(%d,&ai);printf(原始数据数列);for(i=0;iN;i+)printf(%d ,ai);for(i=0;i=N-1;i+)k=i;for(j=i+1;jak)k=j;if(i!=k)t=ai;ai=ak;ak=t;printf(n,i+1); for(m=0;mN;m+) printf(%d ,am);printf(n 最终有序数列:);for(i=0;iN;i+)printf(%d ,ai);2题流程图printf(n);2.#include void main() int a6=1,3,5,7,9; int i,m,j,t; for(i=0;i5;i+) printf(%d ,ai); printf(n); printf(请输入要插入的数的值:); scanf(%d,&m); a5=m; for(i=0;i6;i+) for(j=0;j=i;j+) while(aiaj) t=ai; ai=aj; aj=t; printf(插入元素后数组为:); for(i=0;i6;i+) printf(%d ,ai); printf(n);3.#include void main() char str180,str240;3题流程图int i=0,j;printf(请输入两串字符串:);gets(str1);gets(str2);while(str1i) i+;for(j=0;str2j;j+) str1i=str2j; i+;str1i=0;puts(str1);4.#include void main() int a55 = 0; 4题流程图int i=0, j=0; int sum1=0,sum2=0;printf(请依次输入5*5数组的25个元素: n); for (i=0; i5; i+) for (j=0;j5;j+) scanf(%d, &aij); for (i=0;i5;i+) sum1+=aii; sum2+=ai4-i; printf(主对角线之和: %d, 辅对角线之和: %dn, sum1, sum2);5题流程图5.#include #include void main() char name 1010,t10; int i,j; for(i=0;i10;i+) printf(请输入第%d个同学:,i+1); gets(name i); for(i=1;i10;i+) for(j=0;j0) strcpy(t, name j); strcpy(name j, name j+1); strcpy(name j+1,t); for(i=0;i10;i+) puts(name i);6题流程图6.#include void main() int a66,i,j,k=1; for(i=0;i6;i+) for(j=0;j=i;j+) if(i=j|j=0) aij=k; printf(%d ,aij); if(i=j) printf(n); else aij=ai-1j+ai-1j-1; printf(%d ,aij); 7.(1)#include void main() int a12; int i,flag=0,pos=13,x; printf(请输入12个数字:); for(i=0;i12;i+) scanf(%d,&ai); printf(请输入你要查找的数字:); scanf(%d,&x); for(i=0;i12;i+) if(ai=x) flag=1,pos=i+1; if(flag=1) printf(发现数字在第%d位n,pos); else printf(not foundn); (2)#includevoid main() int a11; int i,j,t; printf(请输入11个数字:); for(i=0;i11;i+) scanf(%d,&ai); for(i=1;i11;i+) for(j=0;jaj+1) t=aj,aj=aj+1,aj+1=t; printf(元素从小到大的顺序为:); for(i=0;i11;i+) printf(%d ,ai); printf(n);(3)7题流程图#include void main() int a11;int i,low,high,mid,x; low=0; high=10; mid=(low+high)/2; printf(请按顺序输入11个数字:); for(i=0;i11;i+) scanf(%d,&ai); printf(请输入你要查找的数字:); scanf(%d,&x); do if(xamid) high=mid-1; else low=mid+1; mid=(low+high)/2; while(x!=amid&lowhigh); if(x=amid) printf(查找的数字位置在%d位n,mid+1); else printf(not found);8题流程图8.#include void main() int a10,i,n,min,t,m; printf( 请输入数组:); for(i=0;i10;i+) scanf(%d,&ai); for(n=0;n9;n+) min=an; for(i=n;iai+1) min=ai+1; m=i+1; t=an;an=min;am=t; printf(数字按从小到大顺序为:n); 9题流程图for(i=0;i10;i+) printf(%d ,ai); 9.#include void main() int a3=1,3,5,b8=2,4,6,8,10; int i,j,temp; printf(数组a:); for(i=0;i3;i+) printf(%d ,ai); printf(数组b:); for(i=0;i5;i+) printf(%d ,bi); for(i=0;i3;i+) b7-i=ai; for(i=1;i8;i+) for(j=0;jbj+1) temp=bj,bj=bj+1,bj+1=temp; printf(归并后新数组的顺序:); for(i=0;i8;i+) printf(%d ,bi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论