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

2つの配列で和集合演算を実行するCプログラム


ユニオンは、Cプログラミング言語で使用できる特別なデータ型であり、同じメモリ位置にさまざまなデータ型を格納できます。ユニオンは、同じメモリ位置を多目的に使用する効率的な方法を提供します。

和集合演算

配列1={1,2,3,4,6}

の場合

配列2={1,2,5,6,7}

次に、配列1と配列2の和集合は

Array1 U array 2 ={1,2,3,4,6} U {1,2,5,6,7}

={1,2,3,4,5,6,7}

繰り返しのないすべての要素のセットは、ユニオンと呼ばれます。

ユニオンのロジックは次のとおりです-

for(i=0;i<size1;i++){
   uni[j]=a[i];
   j++;
}
for(i=0;i<size2;i++){
   uni[j]=b[i];
   j++;
}

繰り返される要素を削除するためのロジックは次のとおりです-

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);
}

プログラム

以下は、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;
   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];
   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]);
   }
   //union start
   for(i=0;i<size1;i++){
      uni[j]=a[i];
      j++;
   }
   for(i=0;i<size2;i++){
      uni[j]=b[i];
      j++;
   }
   //Sorting
   sort(size1+size2,uni);
   //Remove repeated elements
   size=removerepeated(size1+size2,uni);
   printf("Array afetr Union \n");
   for(i=0;i<size;i++){
      printf("%d\n",uni[i]);
   }
   //Sorting
}
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
4
Enter size of an array2
3
Enter numbers for array 1
1
2
3
4
Enter numbers for array 2
3
5
6
Array after Union
1
2
3
4
5
6

  1. Cプログラムの3Dでの2つの平面間の角度?

    ここでは、3次元空間内の2つの平面間の角度を計算する方法を説明します。平面はP1とP2です。以下のような円周率の方程式- 角度が「A」の場合、このルールに従います- 例 #include <iostream> #include <cmath> using namespace std; class Plane{    private:       double a, b, c, d;    public:       Plane(double a = 0, do

  2. PythonでExcelスプレッドシート操作を実行するプログラム?

    Excelスプレッドシートを表す2Dマトリックスがあるとします。すべてのセルと数式が計算された同じ行列を見つける必要があります。 Excelスプレッドシートは次のようになります B1 7 0 3 5 =A1 + A2 列の名前は(A、B、C ...)、行の名前は(1、2、3 ....)です。各セルには、値、別のセルへの参照、または次の操作のExcel数式が含まれます。数値またはセル参照の間。 (例: =A1 + 5、 =A2 + B2、または =2 + 5) したがって、入力が次のような場合 B1 7 0 3 5 =A