用C语言实现求两个数组中相同元素
时间: 2024-10-21 17:18:18 浏览: 42
在C语言中,可以使用循环和临时存储来找出两个数组中相同的元素。这里是一个简单的示例,假设我们有两个整数数组`arr1[]`和`arr2[]`,以及它们的长度`n1`和`n2`:
```c
#include <stdio.h>
// 函数声明
void findCommon(int arr1[], int n1, int arr2[], int n2);
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int arr2[] = {4, 5, 6, 7, 8};
int n2 = sizeof(arr2) / sizeof(arr2[0]);
findCommon(arr1, n1, arr2, n2);
return 0;
}
// 查找并打印相同元素的函数
void findCommon(int arr1[], int n1, int arr2[], int n2) {
// 创建临时数组存放公共元素
int common[n1 + n2];
int j = 0; // 初始化计数器
for (int i = 0; i < n1 && j < n2; ++i) {
if (arr1[i] == arr2[j]) {
printf("%d ", arr1[i]); // 打印当前找到的公共元素
common[j++] = arr1[i]; // 把元素添加到common数组
}
}
// 如果还有剩余元素,说明arr2有未匹配的
while (j < n2) {
common[j++] = arr2[j - 1]; // 将arr2剩下的元素也放入common数组
}
printf("\nCommon elements are: ");
// 输出结果
for (int k = 0; k < j; ++k) {
printf("%d ", common[k]);
}
}
```
在这个例子中,`findCommon`函数会查找并打印出两个数组中相同的元素。如果需要的话,你可以稍作修改以适应其他类型的数组。
阅读全文