·28· 实验四 数组与字符串
实验四 数组和字符串
实验目的
掌握数组及数组元素的概念、数组的定义、数组元素的赋值和引用;正确使用数值数组和字符数组,并掌握与数组有关的常用算法。
? 要点提示
1. 数组是相关变量的有序集合,其中所有的变量具有相同的数据类型。 2. 一维数组定义格式为:
类型说明符 数组名[size] 3. 数组的下标:
数组的下标从0开始,到size-1为止。 4. 多维数组定义格式为:
类型说明符 数组名[size1][size2]…[sizen] 5. 字符串
字符串一般使用一维字符数组处理,实际上就是以空字符结尾的字符数组。 字符串常量是由一对双引号括起来的字符集合。
实验内容
1. 一维数组的定义、赋值和引用 2. 与数组有关的算法。
3. 二维数组的定义,赋值和引用 4. 字符数组的定义和使用
5. 常用字符串处理函数的使用
实验步骤
读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入) 1. 建立一个一维数组,用来存放5名学生的成绩,输入成绩,并计算平均分。
#define N 5 main() {
int 【 】; /* 数组定义语句 */ int i,sum=0; float aver;
printf(\ for (i=0; i<5; i++) {
scanf(\【 】); /* 输入数组元素 */
·29· 实验四 数组与字符串
sum=sum+a[i]; }
aver=【 】; /* 计算平均分 */ printf(\}
程序运行结果:
Input 5 numbers: 80 80 90 90 90 The average score is: 86.000000 #define N 5 main() {
int a[5]; /* 数组定义语句 */ int i,sum=0; float aver;
printf(\ for (i=0; i<5; i++) {
scanf(\输入数组元素 */ sum=sum+a[i]; }
aver=sum/5.0; /* 计算平均分 */ printf(\}
2. 设数组a 包括10个元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出。 例: b[1]=a[1]+a[0],…b[9]=a[9]+a[8] main()
{int a[10],b[10],i;
printf(\
for (i=0; i<10;i++) /* 数组输入 */ scanf(\ for (i=1; i<10; i++)
b[i]=【 】; /* 计算b数组中的元素 */ for (i=1; i<10; i++) { printf(\
if (【 】==0) printf(\每行打印3个数据 */ } }
程序运行结果:
·30· 实验四 数组与字符串
Input 10 numbers:1 2 3 4 5 6 7 8 9 10 3 5 7 9 11 13 15 17 19 main() {
int a[10],b[10],i;
printf(\
for (i=0; i<10;i++) /* 数组输入 */ scanf(\ for (i=1; i<10; i++)
b[i]=a[i]+a[i-1]; /* 计算b数组中的元素 */ for (i=1; i<10; i++) {
printf(\
if (i%3==0) printf(\/* 每行打印3个数据 */ } }
3. 将一个数组中的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。提示:a[0]和a[n-1]交换, a[1]和a[n-1-1]交换…. #define N 5 main()
{ int a[N]={8,6,5,4,1}, i, temp;
printf(\ for (i=0; i printf(\ for (i=0; i 程序运行结果 The original array is: 8 6 5 4 1 The new array is: 1 4 5 6 8