#include <stdio.h>
void print(int arr[],int n){
……(打印数组)
printf("\n");
}
void reverse(int arr[],int n){
int left = 0;
int right = n-1;
……(实现数组转置)
}
void sort(int arr[],int n){
int i =0,j=0;
int tmp=0;
……(实现冒泡排序过程)
}
int search(int arr[],int n,int key){ //key为要查找的元素
int index = -1;
……(具体查找过程实现)
return index; //(函数返回值)
}
int main()
{
int sz=0;
sz = ……(计算数组长度)
print(arr,sz);
……(调用转置函数reverse)
…… (调用打印函数print)
……(调用冒泡排序函数sort)
……(调用打印函数print)
printf("请输入一个数值: ");
……从键盘接收输入一个数值
……(调用查找函数search在数组中查找从键盘输入的值)
if( …判断条件… ){
printf("数组中无该元素\n");
}else{
…… 打印找到的数组下标
}
return 0;
}

实现search()函数实现查找有序数组中是否包含某个元素,如果包含打印出该数组元素下标,如果不包含,则打印“数组中无该元素”。 并在主函数中完成调用。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- -Undefined_ 2021-12-28 14:54关注
#include <stdio.h> void print(int arr[], int n) { int i; for(i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } void reverse(int arr[], int n) { int left = 0; int right = n - 1; int t; for(; left < right; left++, right--) { t = arr[left]; arr[left] = arr[right]; arr[right] = t; } } void sort(int arr[], int n) { int i = 0, j = 0; int tmp = 0; for(i = 0; i < n - 1; i++) { for(j = 0; j < n - i - 1; j++) { if(arr[j] > arr[j + 1]) { tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } } int search(int arr[], int n, int k) { int i; for(i = 0; i < n; i++) { if(arr[i] == k) { return i; } } return -1; } int main() { int sz = 0, k; int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; sz = sizeof(arr) / sizeof(arr[0]); printf("原数组:\n"); print(arr, sz); reverse(arr, sz); printf("逆置后数组:\n"); print(arr, sz); sort(arr, sz); printf("排序后数组:\n"); print(arr, sz); printf("输入你要查询的元素:\n"); scanf("%d", &k); int p = search(arr, sz, k); if(p==-1){ printf("数组中无该元素\n"); }else{ printf("%d",p); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报