用C语言在主函数输入两个100个数的一维数组,编写函数求出两个数组中的共同元素,并在主函数中输出
时间: 2024-12-18 22:32:30 浏览: 4
当然,我们可以使用C语言创建一个主函数,从用户那里获取两个一维数组的值,然后定义一个辅助函数来找出这两个数组的公共元素。以下是一个简单的示例程序:
```c
#include <stdio.h>
// 辅助函数,用于查找两个数组的共同元素
int* find_common(int arr1[], int arr2[], int n1, int n2) {
int common[n2]; // 初始化一个足够大的数组存储公共元素
int index = 0;
for (int i = 0; i < n1; ++i) { // 遍历第一个数组
for (int j = 0; j < n2; ++j) { // 检查第二个数组的每个元素
if (arr1[i] == arr2[j]) {
common[index++] = arr1[i]; // 如果找到匹配,添加到结果数组
break;
}
}
}
// 填充数组至实际找到的公共元素数量
common[index] = '\0'; // 添加终止符表示数组结束
return common;
}
int main() {
int n, count;
printf("Enter the number of elements in array 1: ");
scanf("%d", &n);
int arr1[100];
printf("Enter elements of array 1: ");
for (int i = 0; i < n; ++i) {
scanf("%d", &arr1[i]);
}
count = n;
printf("\nEnter the number of elements in array 2: ");
scanf("%d", &count); // 注意这里 count 可能小于 n,因为可能需要更小的空间
int arr2[count];
printf("Enter elements of array 2: ");
for (int i = 0; i < count; ++i) {
scanf("%d", &arr2[i]);
}
int* common_elements = find_common(arr1, arr2, n, count);
printf("Common elements are: ");
for (int i = 0; common_elements[i] != '\0'; ++i) {
printf("%d ", common_elements[i]);
}
printf("\n");
free(common_elements); // 释放内存
return 0;
}
```
在这个程序中,`find_common()` 函数接受两个数组及其长度作为参数,然后使用嵌套循环比较它们的元素。如果发现相同的元素,就将其添加到 `common` 数组中。主函数负责接收用户的输入,调用该函数并打印结果。
阅读全文