6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 #include<stdio.h> input 10 numbers: void main() 13579108642 inti,j,k,ta[10]; 10987654321 printf("input 10 numbers:In"); Press any key to continue for(i=0;i<10;i++)scanf("%d",&a[i]); for(i=0;i<9;i++) {k=i; for(j=i+1;j<10;j++)if(a[k]<a[])k=j; if(i!=k) {t=a叮;a叮=ak];ak=t} printf("%d ",ali]); printf("In"); 16 返回本章首页
16 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 3)数组元素的排序 #include<stdio.h> void main() { int i,j,k,t,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(a[k]<a[j]) k=j; if(i!=k) { t=a[i]; a[i]=a[k];a[k]=t; } printf("%d ",a[i]); } printf("\n"); }
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例66】查找数组元素的最大值及其所在位置。 #include<stdio.h> input 10 numbers: void main() 3579108642 值最大的元素是:16.位置是:第6个数 int i,s,pi,a[10]; Press any key to continue printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]); s=a[0];pi=0; for(i=1;i<10;i++)if(a[i]>s){s=a[i];pi=i;} printf("值最大的元素是:%d,位置是:第%d个数 n",s,pi+1); } 17 返回本童首页
17 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例6_6】查找数组元素的最大值及其所在位置。 #include<stdio.h> void main() { int i,s,pi,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]); s=a[0];pi=0; for(i=1;i<10;i++) if(a[i]>s){s=a[i];pi=i;} printf("值最大的元素是:%d,位置是:第%d个数 \n",s,pi+1); }
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例67】在数组中顺序查找值为x的元素,若找到则输出所在位置。 #include<stdio.h> input 10 numbers: void main() 2345678910 int i,x,a[10]; 输入待查找的数:4 printf("input 10 num bers:In"); 查找成场,4在数组中的位置是:4 Press any key to continue for(i=0;i<10;i++)scanf("%d",&a[i]); printf("输入待查找的数:");scanf("%d",&x; for(i=0;i<10;i++) if(x==a[i]) {printf("查找成功,%d在数组中的位置是:%dn",x,i+1); break; ifi>=1o)printf("查找失败,%d不在数组中n",x; 18 返回本童首页
18 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例6_7】在数组中顺序查找值为x的元素,若找到则输出所在位置。 #include<stdio.h> void main() { int i,x,a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]); printf("输入待查找的数:"); scanf("%d",&x); for(i=0;i<10;i++) if(x==a[i]) { printf("查找成功,%d在数组中的位置是:%d\n", x,i+1); break; } if(i>=10) printf("查找失败,%d不在数组中\n", x); }
6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例68】在升序数组中折半查找值为x的元素,若找到则输 出所在位置。 折半查找的原理是:假设数组是递增的,并且被查找的数一 定在数组中。先拿被查找数与数组中间的元素进行比较,如果被 香找数去子元素值,厕说明被查找数位宇数组中的后面一半元素 币。如果被查我薮小宁数组中间元素值,厕说明被香找数位宇数 组中的前面二半元素中。 接下来,只考虑数组中包括被查找数的那一半元素。拿剩下 这些元素的中间元素与被查找数进行比较,然后根据二者的大小, 再去掉那些不可能包含被查找值的二半元素。这样,不断地减小 鑫莪本。最后—数组成。那么这元素就是被 当然,也不排除某茯比较时,中间的元素正好是被 香找元素。 19 返回本意首页
19 返回本章首页 6.5 数值数组元素的常用操作 1.一维数组元素的常用操作 4)数组元素的查找 【例6_8】在升序数组中折半查找值为x的元素,若找到则输 出所在位置。 折半查找的原理是:假设数组是递增的,并且被查找的数一 定在数组中。先拿被查找数与数组中间的元素进行比较,如果被 查找数大于元素值,则说明被查找数位于数组中的后面一半元素 中。如果被查找数小于数组中间元素值,则说明被查找数位于数 组中的前面一半元素中。 接下来,只考虑数组中包括被查找数的那一半元素。拿剩下 这些元素的中间元素与被查找数进行比较,然后根据二者的大小, 再去掉那些不可能包含被查找值的一半元素。这样,不断地减小 查找范围,直到最后只剩下一个数组元素,那么这个元素就是被 查找的元素。当然,也不排除某次比较时,中间的元素正好是被 查找元素