- 20
- 0
- 约2.52千字
- 约 8页
- 2016-12-06 发布于重庆
- 举报
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)