利用函数实现查找一个数在数组中出现的次数
时间: 2023-04-13 16:03:44 浏览: 126
可以定义一个函数,接收两个参数:一个数组和一个数。函数内部遍历数组,统计该数在数组中出现的次数,最后返回次数即可。
具体实现如下:
```python
def count_num(arr, num):
count =
for i in arr:
if i == num:
count += 1
return count
```
调用该函数时,传入需要查找的数组和数即可:
```python
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num = 5
result = count_num(arr, num)
print(result) # 输出:1
```
以上代码中,数组 `arr` 中数值为 `5` 的元素只出现了一次,因此函数返回值为 `1`。
相关问题
C语言,在整数数组中,如果一个数的出现次数最少,我们就称这个数为“孤独数”。给定一个整数数组,输出其中最小的孤独数。函数fun的功能是求出长度为n的数组a中的孤独数并返回(n最大不会超过100)。例如:当n为6,a数组为5,3,3,3,2,2时,函数返回值应为5。
在C语言中,我们可以利用哈希表(如数组或者动态结构)来找出数组中的孤独数。孤独数的概念意味着该数字只出现一次,因此我们可以遍历数组,每次遇到一个数字就将其在哈希表中对应的计数加一。然后再次遍历数组,对于每个元素,如果它的计数为1,那么就是我们要找的孤独数。函数`fun`可以按照以下步骤实现:
1. 初始化一个大小为`MAX_INT`的计数数组`count`,并将所有元素初始化为0。
2. 遍历输入数组`a`,对每个元素`num`,更新`count[num]`。
3. 再次遍历`a`,检查每个元素`num`及其计数`count[num]`,如果`count[num]`等于1,那么`num`就是孤独数。
4. 返回找到的第一个孤独数。
以下是`fun`函数的一个简化版伪代码实现:
```c
int fun(int a[], int n) {
int count[MAX_INT] = {0}; // 哈希表用于存储每个数字出现的次数
// 第一遍统计出现次数
for (int i = 0; i < n; i++) {
count[a[i]]++;
}
// 第二遍查找孤独数
for (int i = 0; i < n; i++) {
if (count[a[i]] == 1) {
return a[i]; // 如果找到一个计数为1的数字,直接返回
}
}
// 没有找到孤独数,则返回某个默认值或说数组不存在孤独数
return -1;
}
```
C语言实现数组中的插值查找并返回下标
插值查找是一种利用比较次数较少的查找算法,其基本思想是根据查找值与查找表中最大值和最小值的比例,利用类似于二分查找的方法查找目标值。下面是C语言实现数组中的插值查找并返回下标的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 插值查找
int interpolation_search(int arr[], int n, int x) {
int low = 0, high = n - 1;
while (low <= high && x >= arr[low] && x <= arr[high]) {
int pos = low + ((x - arr[low]) * (high - low)) / (arr[high] - arr[low]);
if (arr[pos] == x)
return pos;
else if (arr[pos] < x)
low = pos + 1;
else
high = pos - 1;
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 7;
int index = interpolation_search(arr, n, x);
if (index != -1)
printf("元素 %d 在数组中的下标是 %d\n", x, index);
else
printf("元素 %d 不在数组中\n", x);
return 0;
}
```
在上面的代码中,函数`interpolation_search`接收一个整型数组`arr`、数组长度`n`和要查找的元素`x`,返回`x`在`arr`中的下标。如果`x`不在`arr`中,则返回-1。函数中使用了while循环来进行查找,根据查找值`x`与查找表中最大值和最小值的比例,计算出中间位置的下标`pos`,并与`x`进行比较,根据比较结果更新查找范围。最终,如果找到了`x`,则返回其下标,否则返回-1。在`main`函数中,我们声明一个整型数组`arr`和要查找的元素`x`,调用`interpolation_search`函数进行查找,并输出查找结果。
阅读全文