How to check if Two Arrays have Same Elements (Regardless of Order) in C - Step by Step Examples
How to check if Two Arrays have Same Elements (Regardless of Order) in C ?
Answer
To check if two arrays have the same elements regardless of order in C, you can sort both arrays and then compare them element by element.
✐ Examples
1 Arrays with Same Elements (Order Ignored)
In this example,
- We create two arrays named
arr1
andarr2
with the same elements but in different order. - We sort both arrays using the
qsort
function from thestdlib.h
library. - We then define a function
arraysEqual
that checks if the sorted arrays are equal. - Finally, we call
arraysEqual
to compare the arrays and print the result to the console.
C Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int arraysEqual(int arr1[], int arr2[], int size) {
qsort(arr1, size, sizeof(int), compare);
qsort(arr2, size, sizeof(int), compare);
for (int i = 0; i < size; i++) {
if (arr1[i] != arr2[i]) {
return 0;
}
}
return 1;
}
int main() {
int arr1[] = {1, 2, 3};
int arr2[] = {3, 1, 2};
int size = sizeof(arr1) / sizeof(arr1[0]);
int isEqual = arraysEqual(arr1, arr2, size);
printf("%s\n", isEqual ? "true" : "false");
return 0;
}
Output
true
2 Arrays with Different Elements (Order Ignored)
In this example,
- We create two arrays named
arr3
andarr4
with different elements. - We sort both arrays using the
qsort
function from thestdlib.h
library. - We then define a function
arraysEqual
that checks if the sorted arrays are equal. - Finally, we call
arraysEqual
to compare the arrays and print the result to the console.
C Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int arraysEqual(int arr1[], int arr2[], int size) {
qsort(arr1, size, sizeof(int), compare);
qsort(arr2, size, sizeof(int), compare);
for (int i = 0; i < size; i++) {
if (arr1[i] != arr2[i]) {
return 0;
}
}
return 1;
}
int main() {
int arr3[] = {1, 2, 3};
int arr4[] = {4, 5, 6};
int size = sizeof(arr3) / sizeof(arr3[0]);
int isEqual = arraysEqual(arr3, arr4, size);
printf("%s\n", isEqual ? "true" : "false");
return 0;
}
Output
false
Summary
In this tutorial, we learned How to check if Two Arrays have Same Elements (Regardless of Order) in C language with well detailed examples.
More C Arrays Tutorials
- How to Declare an Array in C ?
- How to Initialize an Array in C ?
- How to Access Array Elements in C ?
- How to Access Array Elements using Index in C ?
- How to get First Element in Array in C ?
- How to get Last Element in Array in C ?
- How to check if an Array is Empty in C ?
- How to check if an Array is Not Empty in C ?
- How to get Sub Array in C ?
- How to Get Array Length in C ?
- How to Iterate Over an Array in C ?
- How to Iterate Over an Array in Reverse Order in C ?
- How to get the Index of Specified Element in an Array in C ?
- How to check if Specified Element is present in the Array in C ?
- How to count the Number of Occurrences of Specified Element in the Array in C ?
- How to Sort an Array in C ?
- How to Sort an Array in Ascending Order in C ?
- How to Sort an Array in Descending Order in C ?
- How to create a Two Dimensional Array in C ?
- How to Iterate over a Two Dimensional Array in C ?
- How to create a Three Dimensional Array in C ?
- How to Copy an Array in C ?
- How to Split an Array in C ?
- How to Join Arrays in C ?
- How to check if Two Arrays are Equal in C ?
- How to check if Two Arrays have Same Elements (Regardless of Order) in C ?
- How to Convert an Array of Integers to an Array of Strings in C ?
- How to Convert an Array of Strings to an Array of Integers in C ?
- How to Reverse an Array in C ?
- How to Shuffle an Array in C ?
- How to Rotate Elements in an Array in C ?
- How to Filter Elements of an Array based on a Condition in C ?
- How to Declare an Integer Array in C ?
- How to Declare a Float Array in C ?
- How to Declare a String Array in C ?
- How to Remove Duplicates in an Array in C ?
- How to Remove Specific Element from an Array in C ?
- How to Remove Element from Array based on a Condition in C ?
- How to Sort a String Array in Dictionary Order in C ?
- How to Concatenate Strings in Array in C ?