C語言课程设计报告一维数组升序排列及素数.docVIP

  • 20
  • 0
  • 约2.52千字
  • 约 8页
  • 2016-12-06 发布于重庆
  • 举报

C語言课程设计报告一维数组升序排列及素数.doc

C語言课程设计报告一维数组升序排列及素数

C程序课程设计报告 设计题目:1使用选择排序法对一维数组数据进行升序排列及2素数相关问题 专 业 班 级 学 号 学生姓名 指导教师 设计时间 教师评分 1.概述 3 1.1目的 简单描述本课题要解决的问题及解决问题的主要思路; 3 1.2课程设计的组成部分 3 2设计的内容 3 题目一 3 题目二 4 3.总结 5 3.1课程设计进行过程及步骤 5 3.2所遇到的问题,你是怎样解决这些问题的 5 3.3体会收获及建议 6 3.4参考资料(书、论文、网络资料) 6 4.教师评语 6 1.概述 1.1目的: 编程实现选择排序法对一维数组数据进行升序排列,以及用随机函数产生100个500~700之间的整数,然后选出其中的素数,并按从小到大的顺序输出 1.2课程设计的组成部分 由函数,代码,运行结果,总结构成。 2.选择排序法设计的内容 题目一:算法思想:首先从数据中找出最小的元素,然后把这个元素和第一个元素互换,这样最小一个元素就排在第一个位置,然后,从剩下的元素中依次找出最小的元素放在无序数据的第一个位置,最终实现数据的排序。此程序能够对一维数组中的10个数据进行升序排列,用户首选输入要排序的10个数据,然后由程序进行排序,最后由屏幕输出。 流程图如下: 代码如下: #includestdio.h #define N 10 void main() { int i,j,k,t; int a[N]; //定义变量和数组 printf(请输入十个数:); for(i=0;iN;i++) { scanf(%d,a[i]); //输入数组中每个元素的值 } for(i=0;iN-1;i++)//进行N-1次搜索 { j=i; for(k=i+1;kN;k++) //记录最小值下标 { if(a[k]a[j]) j=k; } if (j!=i) { t=a[i]; a[i]=a[j]; a[j]=t; } } printf(排序后的数:); printf(\n); for(i=0;iN;i++) { printf(%d ,a[i]); } printf(\n); } 程序截图如下: 题目二:目的:用随机函数产生100个500~700之间的整数,然后选出其中的素数,并按从小到大的顺序输出 流程图: 代码: #include stdio.h #include time.h #include math.h #include stdlib.h #define N 100 void main() { int array[N]; int i,j,k; int m,n; int temp; srand(time(NULL)); printf(产生100个500-700之间的整数:\n); for ( i = 0; i N; i++) { array[i] = rand()%200+500; printf(%d\t,array[i]); } printf(\n素数有以下几个: \n); for ( i = 0; i N; i++) { m=sqrt(array[i]+1); for(n=2;n=m;n++) if(array[i]%n==0) break; if(n=m+1) printf(%d\t,array[i]); } for(j=0;ji-1;j++) { for(k=j+1;ki;k++) if(array[j]array[k]) { temp=array[j]; array[j]=array[k]; array[k]=temp; } } printf(\n从小到大排序为: \n); for(i=0;iN;i++) { printf(%d\t,array[i]); } } 3.总结 3.1课程设计进行过程及步骤 1、仔细阅读课程设计题目,了解题目涉及的相关知识点; 2、分析题目,得出程序骨干及大体思路; 3、查阅相关资料,进一步细化

文档评论(0)

1亿VIP精品文档

相关文档