实验四一维数组实验目的1)理解一维数组的基本概念;2)熟练掌握一维数组的定义方法、初始化及元素的引用方法;3)熟练掌握一维数组在循环结构中的使用方法。二程序示例[源程序】编写程序,从键盘输入10位学生的成绩,统计最高分、最低分和平均分。1#include<stdio.h>2int main()3{4int i;5float a[10], min, max, avg;6printf("input 10 scores: In");7//数据输入for(i=0; i<=9; i++)819printf("the %d scores is: ", i+1);10scanf("%f",&a[i]);11112min=max=avg=a[0];//连续赋值初始化13//数值比较for(i=1; i<10; i++)14115if(min>a[i])16min=a[i];17if(max<a[i])18max=a[];19avg=avg+a[i];20121avg = avg / 10;1/计算平均值22printf("max score: %g min score: %g average score: %g)n", max, min, avg);23return 0;
实验四 一维数组 一 实验目的 1) 理解一维数组的基本概念; 2) 熟练掌握一维数组的定义方法、初始化及元素的引用方法; 3) 熟练掌握一维数组在循环结构中的使用方法。 二 程序示例 [源程序] 编写程序,从键盘输入 10 位学生的成绩,统计最高分、最低分和平均 分。 1 #include <stdio.h> 2 int main() 3 { 4 int i; 5 float a[10], min, max, avg; 6 printf("input 10 scores: \n"); 7 for(i=0; i<=9; i++) //数据输入 8 { 9 printf("the %d scores is: ", i+1); 10 scanf("%f", &a[i]); 11 } 12 min=max=avg=a[0]; //连续赋值初始化 13 for(i=1; i<10; i++) //数值比较 14 { 15 if(min>a[i]) 16 min=a[i]; 17 if(max<a[i]) 18 max=a[i]; 19 avg=avg+a[i]; 20 } 21 avg = avg / 10; //计算平均值 22 printf("max score: %g min score: %g average score: %g\n", max, min, avg); 23 return 0;
241[程序输入]input10 scores:the1scoresis:80<回车>the2scores is:56<回车>the3scoresis:78<回车>the4scoresis:58<回车>the5scoresis:98<回车>the6scoresis:79<回车>the7scoresis:67<回车>the8scoresis:44<回车>the9scoresis:100<回车>the10scoresis:9<回车>[程序输出]max score:100,min score:9,average score:66.9[程序分析]由若于类型相同的相关数据按照顺序存储在一起形成的一组同类型有序数据的集合称为数组。用一个统一的名字标识这组数据,称为数组名,构成数组的每个数据项称为数组的元素。第一个for循环完成输入并存储10位学生的成绩。定义。用a[0]元素的值作为min、max、avg三变量的初始值,第二个for循环从a[1]开始循环进行数值比较,判断求最小值、最大值及平均值。其中第1行为预编译指令,由于主程序中(或称为main函数)使用了printf系统库函数,其在stdio.h中被定义,因此需要包含系统库函数stdio.h。第2-24行为主函数:1、第4行定义整型变量i;2、第5行定义4个单精度浮点型变量,其中变量min、max、avg分别用来存放求得的最小值、最大值及平均值,a为包含10个元素的一维数组;3、第7-11行为for循环完成输入并存储10位学生的成绩到数组a中;为了后续进行数据比较;4、第12行将min、max和avg的值均初始化为数组a的第一个元素值;
24 } [程序输入] input 10 scores: the 1 scores is : 80<回车> the 2 scores is : 56<回车> the 3 scores is : 78<回车> the 4 scores is : 58<回车> the 5 scores is : 98<回车> the 6 scores is : 79<回车> the 7 scores is : 67<回车> the 8 scores is : 44<回车> the 9 scores is : 100<回车> the 10 scores is : 9<回车> [程序输出] max score: 100, min score: 9, average score: 66.9 [程序分析] 由若干类型相同的相关数据按照顺序存储在一起形成的一组同类型有序数 据的集合称为数组。用一个统一的名字标识这组数据,称为数组名,构成数组 的每个数据项称为数组的元素。 第一个 for 循环完成输入并存储 10 位学生的成绩。定义。用 a[0]元素的值作 为 min、max、avg 三变量的初始值,第二个 for 循环从 a[1]开始循环进行数值比 较,判断求最小值、最大值及平均值。 其中第 1 行为预编译指令,由于主程序中(或称为 main 函数)使用了 printf 系统库函数,其在 stdio.h 中被定义,因此需要包含系统库函数 stdio.h。 第 2-24 行为主函数: 1、第 4 行定义整型变量 i; 2、第 5 行定义 4 个单精度浮点型变量,其中变量 min、max、avg 分别用来 存放求得的最小值、最大值及平均值,a 为包含 10 个元素的一维数组; 3、第 7-11 行为 for 循环完成输入并存储 10 位学生的成绩到数组 a 中;为了 后续进行数据比较; 4、第 12 行将 min、max 和 avg 的值均初始化为数组 a 的第一个元素值;
5、第13-20行求取数组中的最小值和最大值并将结果存于min和max中,由于之前已经将数组的第一个元素值赋于min和max以及avg,因此循环是从数组第二个元素开始的:6、第21行求取平均值。注意:1、数组的元素索引是从0开始,即a[0]表示数组中的第一个元素,a[1]表示教组。中的第二个元素2、%g是C语言printf()函数的一个输出格式类型,它表示以%f、%e中较短的输出宽度输出单、双精度实数,%g用于打印浮点型数据时,会去掉多余的零,至多保留六位有效数字(不同于%e的默认保留小数点后6位)。三、程序编写1、有一个已经排好序的数组(1,2,6,14,25,36,37,55)。现输入一个数,要求按原来的规律将它插入数组中,并打印输出到屏幕。要求:1)有序数组内容和待插入数据在程序运行时由用户输入;2)插入和结果输出功能通过函数实现;3)数组不能定义成全局变量。2、使用单循环实现源程序2-1的功能。3、已知数组data中有如下元素:22,54,19,27,25,12,63,99,277,189;输入一个x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出"NotFound
5、第 13-20 行求取数组中的最小值和最大值并将结果存于 min 和 max 中, 由于之前已经将数组的第一个元素值赋于 min 和 max 以及 avg,因此循环 是从数组第二个元素开始的; 6、第 21 行求取平均值。 注意: 1、 数组的元素索引是从 0 开始,即 a[0]表示数组 a 中的第一个元素,a[1]表示 数组 a 中的第二个元素; 2、 %g 是 C 语言 printf()函数的一个输出格式类型,它表示以%f、%e 中较短的输 出宽度输出单、双精度实数,%g 用于打印浮点型数据时,会去掉多余的零, 至多保留六位有效数字(不同于%e 的默认保留小数点后 6 位)。 三、程序编写 1、有一个已经排好序的数组{1, 2, 6, 14, 25, 36, 37,55}。现输入一个数, 要求按原来的规律将它插入数组中,并打印输出到屏幕。要求: 1) 有序数组内容和待插入数据在程序运行时由用户输入; 2) 插入和结果输出功能通过函数实现; 3) 数组不能定义成全局变量。 2、使用单循环实现源程序 2-1 的功能。 3、已知数组 data 中有如下元素:22,54,19,27,25,12,63,99,277,189;输入一 个 x,然后在数组中查找 x,如果找到,输出相应的下标,否则,输出"Not Found