数组部分必须会编写的程序 (参考答案)
1、使用选择法、冒泡法对10 个数进行排序,并输出排序前后的数列。
//选择法
#include
voidmain()
{
inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i,j,t,temp;
printf("Beforesort:");
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
//排序
for(i=0;i<9;i++)
{
t=i;
for(j=i+1;j<10;j++)
{
if(a[t]>a[j])
{
t=j;
}
}
if(t!=i)
{
temp=a[i];
a[i]=a[t];a[t]=temp;
}
}
printf("Afteresorted:");
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
// 冒泡法
#include
voidmain()
{
inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,I,j,t;
printf(“Beforesort:”);
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
prtintf(“\n”);
//排序
for(i=0;i<=n-1;i++)
{
for(j=0;j
if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
1
}
printf(“Afteresorted:”);
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
prtintf(“\n”);
}
2、已知数组a 中的元素已按由小到大顺序排列,以下程序的功能是将输入的一
个数插入数组a 中,插入后,数组a 中的元素仍然由小到大顺序排列。
#include
voidmain()
{
inta[10]={0,12,17,20,25,28,30};/*a[0]为工作单元,从a[1]开始存放数据*/
intx,i,j=6;/*j 为元素个数*/
printf("Enteranumber:");
scanf("%d",&x);
a[0]=x;
i=j;/*从最后一个单元开始*/