Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

2つの配列で交差演算を実行するCプログラム


交差操作

配列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++;
      }
   }
}

プログラム

以下は、2つの配列で交差演算を実行する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\n");
   scanf("%d",&size1);
   printf("Enter size of an array2\n");
   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\n");
   for(i=0;i<size1;i++){
      scanf("%d",&a[i]);
   }
   printf("Enter numbers for array 2\n");
   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\n");
   if(size>0){
      for(i=0;i<size;i++){
         printf("%d\n",intersection[i]);
      }
   }else{
      printf("No intersection\n");
   }
}
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

  1. C++での2本の線の交点のプログラム

    線ABに対応する点AとB、および線PQに対応する点PとQが与えられます。タスクは、これら2つの線の交点を見つけることです。 注 −点はX座標とY座標の2D平面で与えられます。 ここで、A(a1、a2)、B(b1、b2)およびC(c1、c2)、D(d1、d2)は、2つの異なる線を形成している座標であり、P(p1、p2)は交点です。 (交点の図解のためだけに) 交点を見つける方法 − 上の図を-としましょう 例 したがって、(a1、a2)、(b1、b2)、(c1、c2)、(d1、d2)を使用して、:A1 =b2 --a2B1 =a1 --b1C1 =(A1 * a1)+( B1 *

  2. 2つのリストの共通部分を見つけるPythonプログラム?

    交差演算とは、リスト1とリスト2からすべての共通要素を取得する必要があり、すべての要素が別の3番目のリストに格納されることを意味します。 List1::[1,2,3] List2::[2,3,6] List3::[2,3] アルゴリズム Step 1: input lists. Step 2: first traverse all the elements in the first list and check with the elements in the second list. Step 3: if the elements are matched then store in t