实验5 数组

实验5 数组
实验5 数组

实验5数组

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。

2.掌握字符数组和字符串函数的使用。

3.掌握与数组有关的算法,特别是排序算法

二、实验学时

4学时

三、实验内容

1.读程序,填空

(1)以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中,请填空:int main( )

{ int a[10]={1,2,5,8,9,10},an=5;

int b[10]={1,3,4,8,12,18}, bn=5;

int i,j,k, c[20], max=9999;

a[an+1]=b[an+1]=max;

i=j=k=0;

while( a[i]!=max||b[j]!=max)

{ if(a[i]

{ c[k]=________;

k++;

_______}

else

{ c[k]=_________;

k++;

_____________;}

}

for(i=0;i

cout<

}

(2)以下代码的功能是:对已排好序的数组,用折半查找法查找指定的数据。请将代码补充完整。

int main()

{ int a[ ]={-123, -10, 5, 8, 30, 56, 59, 66, 90, 518};//学生也可自拟数据 int n,k,i;

cout<<"输入要查询的关键值:";

cin>>k;

cout<

int low = 0,high =9,find = -1,m; //find=-1表示没有找到

while (low <= high &&______________)

{

m =___________;

if (k == a[m])

{find = 1; //find=1表示已经找到

cout<< k<<"找到了,在第"<< m+1<< "个位置。"<

else

{if (k < a[m])

high = __________;

else

low = __________;}

}

if (____________)

cout<< k<<"没有找到。"<

return 0;

}

2.程序设计

(1)一个10个整数的数组(34,91,83,56,29,93,54,12,88,72),求数组元素的平均值,找出最小数及其下标。

(2)用冒泡法对第一题数组的10个数从大到小排列,按每行5个数分别输出排序前后的数组元素。

(3)用string 定义字符串变量的方法,编一程序,将两个字符串连接起来,结果取代第一个字符串。

(4)编程序实现:从一组数据中,按顺序查找指定的数据,如找到显示该数所在位置,否则给出未找到的提示。

基本方法:在含有n个数的数组a里,查找其值为k的数据。从下标为0的位置开始,顺序向下查找,让k与a[i]进行比较,若k!=a[i],则使i=i+1,继续向下查找;若k==a[i],则查找成功;若直到i>n还没找到,则在该数组中没有其值为k的数据。

(5)(选做)在一个从小到大排列的有序数组中插入元素x ,插入后数组仍然有序。

核心参考代码(假设有10个数):

for (k = 0;k<=9;k++)

if (x < a[k])

break;

if(k==10)

a[10] = x;

else

{

for (i = 9 ; i >=k;i--)

a[i + 1]= a[i];

a[i+1] = x;

}

相关主题
相关文档
最新文档