- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六次试验实验报告doc
姓名 曹洋洋 学号 2011210612
实验成绩
华中师范大学计算机科学系
实 验 报 告 书
实验题目: 实验六
课程名称: 高级语言程序设计实验
主讲教师: 王 敬 华
辅导教师:
课程编号: 8 8 7 1 0 1 0 3
班 级: 行政2班
实验时间: 2012.04.06
1
实验目的:熟悉数组的定义引用 以及选择 冒泡两种排序方法
实验内容:编写一个程序,输入两个包含10个元素的数组,先将第一个数组采用冒泡法进行降序排列,第二个数组采用选择排序进行降序排列,然后将这两个数组合并成一个降序数组。
实验环境:Visual C++ 6.0
实验设计原理
1.分两次接收输入的十个数,并构成数组,分别构成数组a,b,并定义20个元素构成的数组c,c由a,b组合而成;
2.利用冒泡排列()将第一次输入的十个数组成的数组进行从小到大的排列;
3.再利用选择排序对第二次输入的十个数组成的数组从小到大排列,因为排列时是从小到大,输出时逆向输出就行了;
4.对数组c进行从小到大选择排序,逆序数出。(这部分方法与数组b的排序类似)
实验详细实现过程与算法流程
#include stdio.h
#define NUM 10
void main()
{
int a[NUM],b[NUM],c[2*NUM],i,j,t,k;
printf(数组a--请输入%d 个数字,并用一个空格分开:\n,NUM);
for(i=0;iNUM;i++)
scanf(%d,a[i]);
printf(数组b--请输入%d 个数字,并用一个空格分开:\n,NUM);
for(i=0;iNUM;i++)
scanf(%d,b[i]);
for(i=0;iNUM;i++)
{
c[i]=a[i];
c[i+NUM]=b[i];
}
/*数组a的处理部分*/
for(i=0;iNUM;i++)
for(j=0;jNUM-i;j++)
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf(数组a用冒泡法排序后降序排序为:\n);
for(i=NUM-1;i=0;i--)
printf(%d ,a[i]);
printf(\n\n);
/*数组b的处理部分*/
for(i=0;iNUM-1;i++)
{
k=i;
for(j=i+1;jNUM;j++)
if(b[k]b[j])
k=j;
if(k!=i)
{
t=b[i];
b[i]=b[k];
b[k]=t;
}
}
printf(数组b用选择排序法后降序排序为\n);
for(i=NUM-1;i=0;i--)
printf(%d ,b[i]);
printf(\n\n);
/*数组c的处理部分 把 a部分复制 涉及NUM的改成2NUM就可以了*/
for(i=1;i2*NUM;i++)
for(j=0;j2*NUM-i;j++)
if(c[j]c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
printf(数组c用冒泡法排序后降序排序为:\n);
for(i=2*NUM-1;i=0;i--)
printf(%d ,c[i]);
printf(\n\n);
}
输出请输入10个数字,并用一个空格分开
当i10
a[i]--输入值
i++
输出请输入10个数字,并用一个空格分开
当i10
b[i]--输入值
i++
i = 0
===
当i10
c[i]--a[i]
c[i+10]--b[i]
i++
i = 0
i10
j = 0
j10-1
a[j]a[j+1]
T F
j++
t--a[j];a[
文档评论(0)