C dilinde küme işlemleri yapma

Maxoutpay

Megapat
Katılım
17 Haziran 2015
Mesajlar
59
Makaleler
2
Öncelikle herkese iyi günler. Ben DevC++ programı ile C dilinde bir şeyler yazıyorum.
Benim yapmak istediğim kullanıcı 5 taneye kadar küme oluşturabilmesini ve bu kümeler ile tıpkı matematikteki gibi kesişim, fark ve birleşim işlemlerini yapmak istiyorum. Kodum aşağıdaki gibi. Bunu nasıl yapacağımı anlatırsanız sevinirim. Bu arada nasıl kısaltacağımıda söylerseniz yeni sevinirim :kıkırda::kıkırda:
Kod:
#include<stdio.h>
int main(){
    int E[10000], a,k;
    int A[5], b, i;
    printf("Evrensel kumede kac alt kume olsun istersiniz? (En az 3 en fazla 5 degerini girebilirsiniz.)\n");
    scanf("%d",&k);
    while(k>5){
        printf("Lutfen 5 degerinden kucuk bir deger giriniz.\n");
        scanf("%d",&k);
    }
    while(k<3){
        printf("Lutfen 3 degerinden buyuk bir deger giriniz.\n");
        scanf("%d",&k);
    }
    i=0;
    a=0;
    if(k=3){
        while(a<k){
            a++;
            printf("%d. alt kumede kac tane eleman bulunmaktadir?",a);
            scanf("%d",&A[i]);
            i++;
        }
        a=0;
        i=0;
        while(a<A[0]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 1, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[1]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 2, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[2]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 3, a);
        scanf("%d",&E[i]);
        i++;
        }
        printf ("Birlestirme -> 1\n");
        printf("Kesistirme -> 2\n");
        printf("Fark -> 3\n");
        scanf("%d",&b);
    }
    if(k=4){
        while(a<k){
            a++;
            printf("%d. alt kumede kac tane eleman bulunmaktadir?",a);
            scanf("%d",&A[i]);
            i++;
        }
        a=0;
        i=0;
        while(a<A[0]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 1, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[1]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 2, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[2]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 3, a);
        scanf("%d",&E[i]);
        i++;
        }
        while(a<A[3]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 4, a);
        scanf("%d",&E[i]);
        i++;
        }
        printf ("Birlestirme -> 1\n");
        printf("Kesistirme -> 2\n");
        printf("Fark -> 3\n");
        scanf("%d",&b);
    }
    if(k=5){
        while(a<k){
            a++;
            printf("%d. alt kumede kac tane eleman bulunmaktadir?",a);
            scanf("%d",&A[i]);
            i++;
        }
        a=0;
        i=0;
        while(a<A[0]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 1, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[1]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 2, a);
        scanf("%d",&E[i]);
        i++;
        }
        a = 0;
        while(a<A[2]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 3, a);
        scanf("%d",&E[i]);
        i++;
        }
        while(a<A[3]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 4, a);
        scanf("%d",&E[i]);
        i++;
        }
        while(a<A[4]){
        a++;
        printf("%d. alt kumedeki %d. elemani yaziniz.", 5, a);
        scanf("%d",&E[i]);
        i++;
        }
        printf ("Birlestirme -> 1\n");
        printf("Kesistirme -> 2\n");
        printf("Fark -> 3\n");
        scanf("%d",&b);
    }
   
return 0;
}
 
Son düzenleyen: Moderatör:
Her küme için bir array oluşturabilirsin. Sonra foreach ile arrayları karşılaştırıp aynı olanları yeni bir array'e atarsın bunlar kesişimleri olur. Bunun tam tersini yaparsan yani if'in başına '!' değilse ifadesini koyarsan farkları alırsın. Birleşimde zaten basit arraylerin elemanlarının yeni array'e atarsın yazdırırsın.
 
Uyarı! Bu konu 7 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı