none
bir diziyi kendinden önceki dizi ile karşılaştırma RRS feed

  • Genel Tartışma

  • Sayısal loto uygulaması hazırladım.

    Bir kolonun içindeki 1 ile 49 arasındaki rakamlar birbiri ile farklı olacak şekilde ayarlı ancak kolonların da birbirinden farklı sayılar içermesini nasıl ayarlayabilirim. 

    örneğin a kolonunda: 1-2-3-4-5-6   b kolonunda: 1-2-3-4-5-7 olabilir ama  b kolonunda 1-2-3-4-5-6 rakamları bir arada bulunmamasını istiyorum çünkü bu a kolonunun aynısı oluyor.

    ** toplamda 8 kolon olacak.

    kısacası kolonlarında birbirinden farklı olmasını istiyorum.

                Random rnd = new Random();
                int a;

                for (int i = 1; i <= 8; i++)
                {
                    int[] dizi = new int[6];

                    for (int j = 0; j < 6; j++)
                    {
                        a = rnd.Next(1, 50);
                        if (dizi.Contains(a) == true)
                        {
                            j--;
                        }
                        else
                        {
                            dizi[j] = a;
                        }
                    }
                    Array.Sort(dizi);

                    foreach (int item in dizi)
                    {
                        Console.WriteLine(item);
                    }
                    Console.WriteLine("**************");
                }
                Console.ReadLine();

    12 Haziran 2017 Pazartesi 18:58

Tüm Yanıtlar

  • static bool Esit<T>(T[] a1, T[] a2)
    {
        if (ReferenceEquals(a1,a2))
            return true;
    
        if (a1 == null || a2 == null)
            return false;
    
        if (a1.Length != a2.Length)
            return false;
    
        EqualityComparer<T> comparer = EqualityComparer<T>.Default;
        for (int i = 0; i < a1.Length; i++)
        {
            if (!comparer.Equals(a1[i], a2[i])) return false;
        }
        return true;
    }
    iki dizi birbirinin aynı ise true döndürür.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    12 Haziran 2017 Pazartesi 20:40
  • static bool Esit<T>(T[] a1, T[] a2)
    {
        if (ReferenceEquals(a1,a2))
            return true;
    
        if (a1 == null || a2 == null)
            return false;
    
        if (a1.Length != a2.Length)
            return false;
    
        EqualityComparer<T> comparer = EqualityComparer<T>.Default;
        for (int i = 0; i < a1.Length; i++)
        {
            if (!comparer.Equals(a1[i], a2[i])) return false;
        }
        return true;
    }
    iki dizi birbirinin aynı ise true döndürür.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Elinize sağlık fakat yazdığınız zaten .net 3.5'dan itibaren bulunmaktadır (linq): 

    var esitMiA = a1.SequenceEqual(b1); // veya

    var esitMiB =Enumerable.SequenceEqual(a1,a2);


    12 Haziran 2017 Pazartesi 20:48
  • Random rnd = new Random();
                int a;
                int[] onceki = null;
                for (int i = 1; i <= 8; i++)
                {
                    int[] dizi = new int[6];
                    for (int j = 0; j < 6; j++)
                    {
                        a = rnd.Next(1, 50);
                        if (dizi.Contains(a) == true)
                            j--;
                        else
                            dizi[j] = a;
                    }
                    Array.Sort(dizi);
                    if (!Esit(dizi, onceki))
                    {
                        onceki = new int[6];
                        for(int o = 0; o < 6; o++)
                            onceki[o] = dizi[o];                
                        foreach (int item in dizi)
                            Console.WriteLine(item);
                    } else i--;
                    Console.WriteLine("**************");
                }
                Console.ReadLine();


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    12 Haziran 2017 Pazartesi 21:05
  • Cihan YAKAR,

    çok teşekkür ederim...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    12 Haziran 2017 Pazartesi 21:13
  • Selamlar,

    Oluşturmuş olduğunuz kod parçası, birinci dizi ile ikinci diziyi hiç karşılaştırmıyor.

    Karşılaştırmadığını şu şekilde anlayabilirsiniz;

    "a = rnd.Next(1, 7); " yapın ve sorguyu çalıştırın. oluşan 8 kolonda birbiri ile aynı;

                Random rnd = new Random();
                int a;
                int[] onceki = null;
                for (int i = 1; i <= 8; i++)
                {
                    int[] dizi = new int[6];
                    for (int j = 0; j < 6; j++)
                    {
                        a = rnd.Next(1, 7);
                        if (dizi.Contains(a) == true)
                            j--;
                        else
                            dizi[j] = a;
                    }
                    Array.Sort(dizi);
                    if ((dizi != onceki))
                    {
                        onceki = new int[6];
                        for (int o = 0; o < 6; o++)
                            onceki[o] = dizi[o];
                        foreach (int item in dizi)
                            Console.WriteLine(item);
                    }
                    else i--;
                    Console.WriteLine("**************");
                }
                Console.ReadLine();

    14 Haziran 2017 Çarşamba 16:58
  • dizi!=onceki kodu hatalı.

    Yukarıda yazdığım iki yanıt içerisindeki kodları birleştirip kullanın...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    14 Haziran 2017 Çarşamba 18:05