用c语言求两数组中的相同元素的第一个元素
时间: 2023-09-05 13:14:15 浏览: 55
可以使用两重循环来实现,具体步骤如下:
1. 定义两个数组,并初始化;
2. 使用两重循环遍历两个数组;
3. 在内层循环中,判断两个数组中当前位置的元素是否相等;
4. 如果相等,则返回该元素的下标。
代码示例:
```c
#include <stdio.h>
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {6, 7, 8, 9, 4};
int len1 = sizeof(arr1) / sizeof(int);
int len2 = sizeof(arr2) / sizeof(int);
for (int i = 0; i < len1; i++) {
for (int j = 0; j < len2; j++) {
if (arr1[i] == arr2[j]) {
printf("相同元素的第一个元素为: %d\n", arr1[i]);
return 0;
}
}
}
printf("两个数组中没有相同元素\n");
return 0;
}
```
输出结果为:
```
相同元素的第一个元素为: 4
```
相关问题
c语言 删除数组中的重复元素保留一个
要删除数组中的重复元素,可以使用C语言编写一个算法来实现。具体的步骤如下:
1. 定义一个函数,接收一个整型数组和数组的大小作为参数。
2. 在函数内部,创建一个新的数组,并将原数组的第一个元素存入新数组中。
3. 使用两个嵌套的for循环来遍历原数组。外层循环用于迭代原数组的每个元素,内层循环用于比较当前元素与新数组中的元素是否相同。如果相同,则跳过此元素;否则,将该元素添加到新数组。
4. 返回新数组。
下面是一个示例代码实现:
```c
#include <stdio.h>
int* removeDuplicates(int arr[], int size) {
int* newArr = (int*)malloc(size * sizeof(int));
int newSize = 1; // 新数组的大小,默认为1,即保留原数组的第一个元素
newArr[0] = arr[0]; // 将原数组的第一个元素存入新数组
for (int i = 1; i < size; i++) {
int isDuplicate = 0;
for (int j = 0; j < newSize; j++) {
if (arr[i] == newArr[j]) {
isDuplicate = 1;
break;
}
}
if (isDuplicate == 0) {
newArr[newSize] = arr[i];
newSize++;
}
}
return newArr;
}
int main() {
int arr[] = {1, 2, 3, 4, 2, 3, 5, 6, 1};
int size = sizeof(arr) / sizeof(arr[0]);
int* newArr = removeDuplicates(arr, size);
printf("原数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n删除重复元素后的数组:");
for (int i = 0; i < newSize; i++) {
printf("%d ", newArr[i]);
}
free(newArr); // 释放内存
return 0;
}
```
这段代码将会输出:
```
原数组:1 2 3 4 2 3 5 6 1
删除重复元素后的数组:1 2 3 4 5 6
```
通过该算法,我们可以删除数组中的重复元素,并保留一个。
用C语言写一个函数,判断两个数组里面的元素是否相同,数组中的元素顺序可能不一样
可以使用以下的C语言代码来判断两个数组中元素是否相同,无论元素的顺序是否相同:
```c
#include <stdio.h>
// 定义函数判断两个数组中的元素是否相同
int checkArrays(int arr1[], int arr2[], int size1, int size2) {
// 判断数组大小是否相同
if (size1 != size2) {
return 0; // 数组大小不同,直接返回0
}
// 计算每个元素在数组中的出现次数
int count[100] = {0};
// 遍历第一个数组,将元素出现的次数加1
for (int i = 0; i < size1; i++) {
count[arr1[i]]++;
}
// 遍历第二个数组,将元素出现的次数减1
for (int i = 0; i < size2; i++) {
count[arr2[i]]--;
}
// 检查数组中的元素出现次数是否为0
for (int i = 0; i < 100; i++) {
if (count[i] != 0) {
return 0; // 元素出现次数不为0,表示数组中的元素不同
}
}
return 1; // 所有元素出现次数均为0,表示数组中的元素相同
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {5, 4, 2, 1, 3};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
// 调用函数判断两个数组中的元素是否相同
int result = checkArrays(arr1, arr2, size1, size2);
// 输出结果
if (result) {
printf("两个数组中的元素相同\n");
} else {
printf("两个数组中的元素不同\n");
}
return 0;
}
```
以上代码通过计算每个元素在数组中的出现次数,判断两个数组中的元素是否相同。首先判断两个数组的大小是否相同,如果不同直接返回0表示元素不同。然后使用一个大小为100的辅助数组 `count`,遍历第一个数组,将元素出现的次数加1;再遍历第二个数组,将元素出现的次数减1。最后,检查辅助数组中的元素出现次数是否为0,如果不为0则表示元素不同,返回0;否则返回1表示元素相同。
在main函数中,定义了两个测试数组 `arr1` 和 `arr2`,然后调用 `checkArrays` 函数来判断两个数组中的元素是否相同,并输出结果。在这个例子中,由于两个数组中的元素相同,因此输出 "两个数组中的元素相同"。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)