58同城 网站建设 成都,怎么购买域名和服务器,个人做网络推广哪个网站好,虎牙网页游戏大厅数组和指针 1. 设N个整数有序#xff08;由小到大#xff09;存放在一维数组中。编写函数binarySearch(),实现使用二分查找算法在一维数组中 查找特定整数item。如果找到#xff0c;返回item在数组元素中的下标#xff1b;如果item不在数组中#xff0c;则返回-1。 实现方… 数组和指针 1. 设N个整数有序由小到大存放在一维数组中。编写函数binarySearch(),实现使用二分查找算法在一维数组中 查找特定整数item。如果找到返回item在数组元素中的下标如果item不在数组中则返回-1。 实现方式1形参是数组实参是数组名使用数组元素直接访问方式实现 代码如下 // 练习使用二分查找在一组有序元素中查找数据项
// 形参是数组实参是数组名
#include stdio.h
const int N5;
int binarySearch(int x[], int n, int item);
int main() {int a[N]{1,3,9,16,21};int i,index, key;printf(数组a中的数据:\n);for(i0;iN;i)printf(%d ,a[i]);printf(\n);printf(输入待查找的数据项: );scanf(%d, key);index binarySearch(a,N,key); // 调用函数binarySearch()在数组a中查找指定数据项item,并返回查找结果给index // 补足代码① // ××× if(index0) printf(%d在数组中下标为%d\n, key, index);elseprintf(%d不在数组中\n, key); return 0;
}//函数功能描述
//使用二分查找算法在数组x中查找特定值item数组x大小为n
// 如果找到返回其下标
// 如果没找到返回-1
int binarySearch(int x[], int n, int item) {int low, high, mid;low 0;high n-1;while(low high) {mid (lowhigh)/2;if (item x[mid])return mid;else if(item x[mid])high mid - 1;elselow mid 1;}return -1;
} 运行结果: 实现方式2形参是指针变量实参是数组名使用指针变量间接访问方式实现 代码如下 // 练习使用二分查找在一组有序元素中查找数据项
// 形参是指针变量实参是数组名
#include stdio.h
const int N5;
int binarySearch(int *x, int n, int item);
int main() {int a[N]{1,3,9,16,21};int i,index, key;printf(数组a中的数据:\n);for(i0;iN;i)printf(%d ,a[i]);printf(\n);printf(输入待查找的数据项: );scanf(%d, key);index binarySearch(a,N,key); // 调用函数binarySearch()在数组a中查找指定数据项item,并返回查找结果// 补足代码①// ××× if(index0) printf(%d在数组中下标为%d\n, key, index);elseprintf(%d不在数组中\n, key); return 0;
}//函数功能描述
//使用二分查找算法在x指向的数据项开始的n个数据中查找item
// 如果找到返回其位置
// 如果没找到返回-1
int binarySearch(int *x, int n, int item) {int low, high, mid;low 0;high n-1;while(low high) {mid (lowhigh)/2;if (item *(xmid))return mid;else if(item ! *(xmid))high mid - 1;elselow mid 1;}return -1;
} 运行结果 2. 用选择法排序对一组数据由小到大排序。 代码如下 // 练习使用选择法对字符串按字典序排序
#include stdio.h
#include string.h
void selectSort(char str[][20], int n ); // 函数声明形参str是二维数组名
int main() {char name[][20] {John, Alex, Joseph, Candy, Geoge};int i;printf(输出初始名单:\n);for(i0; i5; i)printf(%s\n, name[i]);selectSort(name, 5); // 调用选择法对name数组中的字符串排序printf(按字典序输出名单:\n);for(i0; i5; i)printf(%s\n, name[i]);return 0;
} // 函数定义
// 函数功能描述使用选择法对二维数组str中的n个字符串按字典序排序
void selectSort(char str[][20], int n) {
int i, j, k;char temp[20];for(i0; in-1; i) {k i; // k用于记录当前最小元素的下标 for(ji1; jn; j)if (strcmp(str[j],str[k])0)k j; // 如果str[j]比当前最小元素还要小就更新k确保它总是存放最小元素的下标 if(k ! i) { // 找到最小元素后交换str[i]和str[k] strcpy(temp,str[i]);strcpy(str[i],str[k]);strcpy(str[k],temp);}}} 运行结果 实验总结和体会 数组名作为参数 vs. 指针变量作为参数在形参、实参写法以及函数实现中数组元素表示的差异 形参 实参 数组元素表示 数组名作为参数 int x[] Sum(a,b) a[i] 指针变量作为参数 int *p1、int *p2 Swap(pa,pb) P[1]、*(p1) 使用选择法对字符串排序时注意事项 字符串的比较和赋值不能直接使用关系运算符和赋值运算符要借助字符串处理函数。 比如strcpya,b:将字符串复制到字符数组中空位用\0填补 strcmpa,b):比较两个字符串的大小返回一个整数值大于零a大于b,等于零相等小于零a小于b。 互评地址 https://www.cnblogs.com/aoliaoliao/p/10913013.html https://www.cnblogs.com/QYAS/p/10931318.html https://www.cnblogs.com/TiAmoz/p/10941117.html转载于:https://www.cnblogs.com/LIUxh/p/10921827.html