输入一个数组的长度len,定义一个整型数组arr[len],通过键盘给数组填充数据,对数组进行排序,输入一个整型数,查找该数是否在数组中,若不在,给出提示,若在,输出该数在数组中的位置。用c语言
时间: 2024-10-08 08:04:18 浏览: 19
C++两个一维数组相加求和
在C语言中,你可以按照以下步骤实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义函数,使用冒泡排序算法对数组进行排序
void bubbleSort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 定义函数,查找目标数在数组中的位置
int search(int arr[], int len, int target) {
for (int i = 0; i < len; i++) {
if (arr[i] == target) {
return i; // 返回元素的位置
}
}
return -1; // 如果未找到,返回-1表示不存在
}
int main() {
int len;
printf("请输入数组长度:");
scanf("%d", &len);
// 动态分配内存
int* arr = (int*)malloc(len * sizeof(int));
printf("请输入数组元素:\n");
for (int i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
// 对数组进行排序
bubbleSort(arr, len);
int target;
printf("请输入你要查找的数:");
scanf("%d", &target);
// 查找并输出结果
int position = search(arr, len, target);
if (position != -1) {
printf("数 %d 发现于数组的第 %d 位。\n", target, position + 1); // 提供索引从0开始
} else {
printf("数 %d 不在数组中。\n", target);
}
// 释放内存
free(arr);
return 0;
}
```
阅读全文