6.5数值数组元素的常用操作 1.一维数组元素的常用操作 1)计算数组元素的和与平均值 【例62】求数组元素的平均值。 #include<stdio.h> input 10 numbers: void main() 2345678910 所有元素的平均值是: 5.5 inti,s=0,a[10]; Press any key to continue printf("input 10 numbers:In"); for(i=0;i<10;i++) scanf("%d",&ali]); for(i=0;i<10;i++) s=s+a[i]; printf("所有元素的平均值是:%5.1fln",s/10.0); 11 返回本童首页
11 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 1)计算数组元素的和与平均值 【例6_2】求数组元素的平均值。 #include<stdio.h> void main() { int i,s=0,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) s=s+a[i]; printf("所有元素的平均值是:%5.1f\n",s/10.0); }
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 2)求数组元素的最大值和最小值 【例63】求数组元素的最大值。 #include<stdio.h> input 10 numbers: 12345678910 void main() 所有元素的最大值是:10 int i,max,a[10]; Press any key to continue printf("input 10 numbers:In"); for(i=0;i<10;i++)scanf("%d",&a[i]); max=a[o]; for(i=1;i<10;i++) if(a[i]>max)max=a[i]; printf("所有元素的最大值是:%d小n",max); 12 返回本童首页
12 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 2)求数组元素的最大值和最小值 【例6_3】求数组元素的最大值。 #include<stdio.h> void main() { int i,max,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]); max=a[0]; for(i=1;i<10;i++) if(a[i]>max) max=a[i]; printf("所有元素的最大值是:%d\n",max); }
6.5数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 【例64】用冒泡排序法将数组元素按照由小到大的顺序排序 输出 冒泡排序法的基本思想是:将相邻两个元素进行比较,第一 轮:对给定的个元素从头买始, 两两比较, 即将a[0]与a1]比较 若a[0j天于a1,则将二者交换,保证a[0j小于或等子a1们,再将 a1与a[2比较,若1天宇a2],则将 者交换,保证1小宇 或等于a2],…,最后将a[n-2 写a[n-1j比较,若a[n-2大于a[n 小,则将三者交换,保证ain-2小宇或等于an-行,这样,就可以 最大的元素套入如的 第二轮:对剩余的1个元素从头年 始,两两比较,将第二天的元素存入到an-:重复上述过程,第 轮:设k=i,对剩余的-i+个元素从头开始,两两比较,将第i大 的元素存入到an-j。最后,第n-1轮:只需a[0]与a[1]比较即可, 至此排序完成。 13 返回本意首页
13 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 【例6_4】用冒泡排序法将数组元素按照由小到大的顺序排序 输出。 冒泡排序法的基本思想是:将相邻两个元素进行比较,第一 轮:对给定的n个元素从头开始,两两比较,即将a[0]与a[1] 比较, 若a[0]大于a[1],则将二者交换,保证a[0]小于或等于a[1],再将 a[1]与a[2] 比较,若a[1]大于a[2],则将二者交换,保证a[1]小于 或等于a[2],…,最后将a[n-2]与a[n-1] 比较,若a[n-2]大于a[n- 1],则将二者交换,保证a[n-2]小于或等于a[n-1],这样,就可以 最大的元素存入到a[n-1]中;第二轮:对剩余的n-1个元素从头开 始,两两比较,将第二大的元素存入到a[n-2];重复上述过程,第 i轮:设k=i,对剩余的n-i+1个元素从头开始,两两比较,将第i大 的元素存入到a[n-i]。最后,第n-1轮:只需a[0]与a[1] 比较即可, 至此排序完成
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 input 10 numbers: #include<stdio.h> 13579108642 void main() 排序结果为: int i,pi,t,a[10]; 12345678910 printf("input 10 numbers:In"); Press any key to continue for(i=0;i<10;i++)scanf("%d",&a[i]); for(i=0;i<10-1;it+) for(pi=0;pi<10-i;pi++) if(a[pi]>a[pi+1]) {t=a[pi];a[pi]=a[pi+1];a[pi+1]=t; printf("排序结果为ln"); for(i=0;i<10;i++)printf("%d ",a[i]); printf("In"); 14 返回本章首页
14 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 #include<stdio.h> void main() { int i,pi,t,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10-1;i++) for(pi=0;pi<10-i;pi++) if(a[pi]>a[pi+1]) {t=a[pi];a[pi]=a[pi+1];a[pi+1]=t; } printf("排序结果为:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 【例65】用选择排序法将数组元素按由大到小的顺 序打印出来。 选择排序法的基本思想是:先将指针k指向O,将a[k] 依次与a[1],,a[n-1]比较,使k指向n个数中的最大 者,然后将a[k]与a[0]互换;重复上述过程,第i次,设 k=i,将a[k与a[i+]~a[n-1]都比完后,将a[k与 a[i+们~a[n-1们中值最大的那个元素互换。最后,第n-1 次,k=n-2,只需与a[n-1]比较即可,至此排序完成。 15 返回本童首页
15 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 【例6_5】用选择排序法将数组元素按由大到小的顺 序打印出来。 选择排序法的基本思想是:先将指针k指向0,将a[k] 依次与a[1],…,a[n-1]比较,使k指向n个数中的最大 者,然后将a[k]与a[0]互换;重复上述过程,第i次,设 k=i,将a[k]与a[i+1]~a[n-1]都比完后,将a[k]与 a[i+1]~a[n-1]中值最大的那个元素互换。最后,第n-1 次,k=n-2,只需与a[n-1]比较即可,至此排序完成