
如果数组 1 = { 1,2,3,4,6}
数组 2 = {1,2,5,6,7 }
那么,数组1和数组2的交集是
Array1 ^ array 2 = {1,2,3,4,6} ^ {1,2,5,6,7}
= {1,2,6}一组共同的元素被称为交集。
交集的逻辑如下 −
k=0;
for(i=0;i<size1;i++){
for(j=0;j<size2;j++){
if(a[i]==b[j]){
intersection[k]=a[i];
k++;
}
}
}以下是执行两个数组交集操作的C程序 −
演示
#include<stdio.h>
int removerepeated(int size,int a[]);
void sort(int size,int a[]);
main(){
int i,size1,size2,size,j=0,k,intersectionsize;
printf("Enter size of an array1</p><p>");
scanf("%d",&size1);
printf("Enter size of an array2</p><p>");
scanf("%d",&size2);
int a[size1],b[size2],uni[size1+size2];
if(size1<size2){
intersectionsize=size1;
}else if(size1>size2){
intersectionsize=size2;
}else{
intersectionsize=size1;
}
int intersection[intersectionsize];
printf("Enter numbers for array 1</p><p>");
for(i=0;i<size1;i++){
scanf("%d",&a[i]);
}
printf("Enter numbers for array 2</p><p>");
for(i=0;i<size2;i++){
scanf("%d",&b[i]);
}
//Intersection starts
k=0;
for(i=0;i<size1;i++){
for(j=0;j<size2;j++){
if(a[i]==b[j]){
intersection[k]=a[i];
k++;
}
}
}
//Sorting
sort(k,intersection);
//Removing
size=removerepeated(k,intersection);
printf("Array after intersection</p><p>");
if(size>0){
for(i=0;i<size;i++){
printf("%d</p><p>",intersection[i]);
}
}else{
printf("No intersection</p><p>");
}
}
int removerepeated(int size,int a[]){
int i,j,k;
for(i=0;i<size;i++){
for(j=i+1;j<size;){
if(a[i]==a[j]){
for(k=j;k<size;k++){
a[k]=a[k+1];
}
size--;
}else{
j++;
}
}
}
return(size);
}
void sort(int size,int a[]){
int i,j,temp;
for(i=0;i<size;i++){
for(j=i+1;j<size;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}当上述程序被执行时,它产生以下结果 −
Enter size of an array1 5 Enter size of an array2 2 Enter numbers for array 1 4 5 6 7 8 Enter numbers for array 2 4 1 Array after intersection 4
以上就是C程序实现对两个数组进行交集操作的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号