实验6 数组
一、实验目的
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2、掌握字符数组和字符串函数的使用;
3、掌握与数组有关的算法(特别是排序算法)。
二、实验内容和步骤
编程序并上机调试运行。
1、以下给定程序MODI1.C的功能是:
求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10
程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!
#include
#include
void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9}, i;
/************found************/
float aver, s;
/************found************/
s = a[0];
for ( i=1; i<10; i++)
s += a[i];
aver = s / i;
printf("The aver is: %.2f\n", aver);
}
2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。
例如,当二维数组a中的元素为:
4 2 34
7 3 12
5 6 5
程序的输出应为:The min is: 2 。
程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!
#include
#include
void main()
{ int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min;
clrscr();
min = a[0][0];
/************found************/
for ( i=0; i<3; i++)
for ( j=0; j<3; j++)
if (min > a[i][j])
{
/************found************/
min = a[i][j];
}
printf("The min is: %d\n", min);
}
3、在考生目录下,给定程序FILL1.C的功能是:在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。
程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。
注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!
#include
void main( )
{ int i, a[10];
clrscr();
for( i=1; i<=10; i++)
/**************found************/
scanf("%d",&a[i-1]);
for(i=0;i<5;i++)
/**************found************/
a[9-i]=a[i];
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
4、 以下给定程序FILL1.C的功能是:输入一个数x,查找x在数组a中最后一次出现的位置。例如:如果a数组中的元素为:1, 5, 2, 5, 6, 8, 7, 4, 3, 0,当x=5时,程序的输出结果为:5 is No.3 。当x=10时,该数不在数组中,程序的输出结果应为:10 not found !。
程序有两个空(1)