第8章数组
第 8 章 数 组
本章知识点8.1一维数组的定义、引用与初始化数组名+一维下标”---表示数据8.2一维数组的应用8.3 二维数组数组名+二维下标”---表示数据8.4数组与函数
本章知识点 8.1 一维数组的定义、引用与初始化 “数组名+一维下标”-表示数据 8.2 一维数组的应用 8.3 二维数组 “数组名+二维下标”-表示数据 8.4 数组与函数
8.2 一维数组的应用8.2.4查找问题实际应用中经常要从批量数据中去查询某个值,如果存在--找到其在数组中的位置,这是常用工具软件都具备的最基本的数据管理功能---查找操作。【例8.9】顺序查找:在数组里存放着N个各不相同的整数。要求:多组输入。,如果每次输入一个整数x,查找x在数组里是否存在,资存在返回其在数组的下标,如果不存在返回值为-1。分析:将被查数据与数组里的每一个元素逐个比较-顺序查找因为要多次查找-定义一个函数完成查找过程在主函数中调用该自定义函数
实际应用中经常要从批量数据中去查询某个值,如果 存在-找到其在数组中的位置,这是常用工具软件都具备的 最基本的数据管理功能-查找操作。 8.2.4 查找问题 8.2 一维数组的应用 【例8.9】顺序查找:在数组里存放着N个各不相同的整数。 要求:多组输入。 每次输入一个整数x,查找x在数组里是否存在,如果 存在返回其在数组的下标,如果不存在返回值为-1。 分析: ① 将被查数据与数组里的每一个元素逐个比较-顺序查找。 ② 因为要多次查找-定义一个函数完成查找过程。 ③ 在主函数中调用该自定义函数
思考:#include<stdio.h>顺序查找1找几个?#defineN 102数组中有多个x怎么办?int ssearch(int all,int n,int x)int i;Ⅱ多次查找for(i=0;i<n;i++)while(scanf("%d",&x)!=EOF)L( if (a[]==x)return i;)Yreturn -1;k=search(b,N,x);if ( k==-1)Obprintf("Not Found!n");int main()else1038printf("%din",k);11int i,k,x,b[N];日7102030405060708090100for(i=0;i<=N-1;i++)300rescanf("%d",&b[i]);211)805000Not Found!4/115
① #include <stdio.h> //顺序查找 ② #define N 10 ③ int search(int a[ ],int n,int x) ④ { int i; ⑤ for (i=0;i<n;i++) ⑥ { if (a[i]==x) return i;} ⑦ return -1; ⑧ } ⑨ int main() ⑩ { ⑪ int i,k,x,b[N]; ⑫ for(i=0;i<=N-1;i++) ⑬ scanf("%d",&b[i]); 4/115 ① //多次查找 ② while (scanf("%d",&x)!=EOF) ③ { ④ k=search(b,N,x); ⑤ if ( k==-1) ⑥ printf("Not Found!\n"); ⑦ else ⑧ printf("%d\n",k); ⑨ } ⑩ return 0; ⑪ } 思考: ① 找几个? ② 数组中有多个x怎么办?
1include<stdio.h>/顺序查找-数组中有多个x怎么办?2#defineN 103void search(intal],intn,intx)4?inti.f=-1;lf=-1--没找到x#0#日for(i=0;i<n;i++)1/对数组找一遍if (a[i]==x)【f=11找到了printf("%d ",i);if(f-==-1)printf("NotFound!n");intmain()B0N2int i,x,b[N];Tfor(i=0;i<=N-1:i++)scanf("%d",&b[i]);while(scanf("%d",&x)!=EOF)search(b,N,x);I/b一数组名,N一数组大小,x一要找的值23return O;24
① #include <stdio.h> //顺序查找-数组中有多个x怎么办? ② #define N 10 ③ void search(int a[ ],int n,int x) ④ { ⑤ int i,f=-1; // f=-1 - 没找到x ⑥ for ( i=0;i<n;i++) //对数组找一遍 ⑦ { ⑧ if (a[i]==x) ⑨ { f=1; //找到了 ⑩ printf("%d ",i); ⑪ } ⑫ } ⑬ if (f==-1) ⑭ printf("Not Found!\n"); ⑮ } ⑯ int main() ⑰ { ⑱ int i,x,b[N]; ⑲ for (i=0;i<=N-1;i++) ⑳ scanf("%d",&b[i]); 21 while (scanf("%d",&x)!=EOF) 22 search(b,N,x); //b—数组名,N—数组大小,x—要找的值 23 return 0; 24 }