实验5 数组一维数组Word文档格式.docx
《实验5 数组一维数组Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验5 数组一维数组Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
(2)从键盘输入10个整数,分别用选择和冒泡排序对这10个数进行排序。
(4)输入一个整数,在一个有序数列中使用折半查找法查找是否存在该整数。
(5)有a,b,c,d和e共5个不同的球,准备分给甲、乙、丙、丁和戊5个小朋友。
已知小朋友甲不用a球,小朋友乙不要b球,小朋友丙不用c求。
编写程序求共有多少种不同的分法。
2、实验目的与要求
(1)掌握一维数组的定义和输入输出的方法。
(2)掌握与数组有关的算法,如排序、查找。
3、实验步骤与源程序
实验步骤
(1)、
(2)、选择排序:
冒泡排序:
(4)、
(5)、
源代码
#include<
stdio.h>
voidmain()
{
inta[10];
inti,k,j,temp;
doublep,sum=0;
printf("
请输入10个整数:
\n"
);
for(i=0;
i<
10;
i++)
scanf("
%d"
&
a[i]);
9;
{
k=i;
for(j=i+1;
j<
j++)
if(a[j]<
a[k])
k=j;
if(k!
=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
去掉其中最大的两个数后余下的整数:
8;
sum+=a[i];
printf("
%d"
a[i]);
p=sum/8;
剩余数据的平均值为:
\n%lf\n"
p);
}
(2)、
下面使用选择排序:
\n\n"
inti,j,t,k;
请输入10个待排序的整数:
if(a[j]>
t=a[i];
a[k]=t;
排序后的整数为:
下面使用冒泡排序:
inti,j,t;
for(j=0;
for(i=0;
9-j;
if(a[i]>
a[i+1])
a[i]=a[i+1];
a[i+1]=t;
inta[10]={0,1,2,3,4,5,6,7,8,9};
intlow=0,high=9;
intmid,k;
请输入您想查找的数k:
"
scanf("
k);
while(low<
=high)
mid=(low+high)/2;
if(k==a[mid])
break;
if(k<
a[mid])
high=mid-1;
else
low=mid+1;
if(low<
查到这个数!
\n\n您想查找的数%d是数组的第%d个元素
k,(low+high)/2+1);
else
查无此数!
{inta,b,c,d,e,count=0;
intx[6],i;
for(i=1;
=5;
x[i]=1;
for(a=1;
a<
a++)
if(x[a]==1)
{x[a]=0;
for(b=1;
b<
b++)
if(x[b])
{x[b]=0;
for(c=1;
c<
c++)
if(x[c])
{x[c]=0;
for(d=1;
d<
d++)
if(x[d])
{x[d]=0;
for(e=1;
e<
e++)
if(x[e])
{x[e]=0;
if(a!
=1&
&
b!
=2&
c!
=3)
count++;
x[e]=1;
}
x[d]=1;
}
x[c]=1;
}
x[b]=1;
x[a]=1;
}
有%d种不同的分法。
count);
4、测试数据与实验结果(可以抓图粘贴)
5、结果分析与实验体会
(1)、数组是一组有序数据的集合,数组中的每一个元素都属于同一个数据类型。
数组常与循环结合起来。
(2)、对于数组中的经典算法理解后也用适当记忆。
如有关排序的算法。
(3)、对于一些实际问题,要善于抽象成C语言的题目。