Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

दो सरणियों पर इंटरसेक्शन ऑपरेशन करने का 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++; 
        } 
    } 
}

प्रोग्राम

निम्नलिखित 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++ में दो रेखाओं के प्रतिच्छेदन बिंदु के लिए प्रोग्राम C++ में दो रेखाओं के प्रतिच्छेदन बिंदु के लिए प्रोग्राम

    दिए गए बिंदु A और B रेखा AB के अनुरूप हैं और बिंदु P और Q रेखा PQ के अनुरूप हैं; कार्य इन दो रेखाओं के बीच प्रतिच्छेदन बिंदु को खोजना है।नोट − बिंदु X और Y निर्देशांकों पर 2D तल में दिए गए हैं।यहां A(a1, a2), B(b1, b2) और C(c1, c2), D(d1, d2) वे निर्देशांक हैं जो दो अलग-अलग रेखाएं बनाते हैं और

  1. - पायथन में दो सरणियों का प्रतिच्छेदन II

    मान लीजिए हमारे पास दो सरणी A और B हैं, इन सरणियों में कुछ तत्व हैं। हमें उनका प्रतिच्छेदन ढूंढना है। उदाहरण के लिए, यदि A = [1, 4, 5, 3, 6], और B = [2, 3, 5, 7, 9], तो प्रतिच्छेदन [3, 5] होगा। हल करने के चरण दो सरणी A और B लें यदि A की लंबाई B की लंबाई से छोटी है, तो उन्हें स्वैप करें सरणी में तत

  1. - पायथन प्रोग्राम: दो लिस्ट्स का इंटरसेक्शन ढूंढना

    इंटरसेक्शन ऑपरेशन का अर्थ है, हमें List1 और List 2 से सभी कॉमन एलिमेंट्स लेने हैं और सभी एलिमेंट्स को दूसरी तीसरी लिस्ट में स्टोर करना है।List1::[1, 2, 3] List2::[2, 3, 6] List3::[2, 3]एल्गोरिदमचरण 1: लिस्ट्स इनपुट करें। चरण 2: पहले पहली लिस्ट के सभी एलिमेंट्स को ट्रैवर्स करें और दूसरी लिस्ट के एलिम