folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Arrays&Strucks (Merge Sorted Arrays)



C++ Arrays&Strucks (Merge Sorted Arrays)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    mtz
    mtz's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    arkadaslar soyle birsey yapmaya calisiyorum.

    Iki array var bunlari birlestirip kucukten buyuge dogru siralamaya calisiyorum. Asagida su ana kadar geldigim yer var. Bir goz atipta nerde hata yaptigimi soylerseniz sevinirim.

     

    #include <iostream>

    //#include <stdlib.h>

     

    using namespace std;

    const int size = 100;

     

     

     

    int main()

    {

       

    //Example Arrays to test

          double array1[] ={-70, 3, 5123, 4.32, 595, -586,  293, 29581, 293.948, 0.235, -395981};

          double array2[] ={-930, -42, -542, -90.2, -0.32, 0.54, 2394, 59123, 5872};

     

    //Find number of items in arrays

           int size1 = sizeof(array1)/sizeof(array1[0]);

           int size2 = sizeof(array2)/sizeof(array2[0]);

           int i, j;

     

    //Create third array with size equal to two original combined

     

           double array3[size];

     

    //Copying first array into first part of new array      

           for (i = 0; i < size1; i++)

           {

               array3[i] = array1[i];

               }

    //Copy second array into new array so it comes right after copy if first array

              

           for (j = size1; j < (size1 + size2); j++)

           {

               array3[j] = array2[j];

           }

    // outputs for testing      

         for (i = 0; i < size1; i++)

         {

             cout << array1[i] << " ";

         }

        

         cout << endl;

        

         for (j = 0; j < size2; j++)

         {

             cout << array2[j] << " ";

         }

         cout << endl;

     

         int size = size1+size2;

        

         i = 0;

           j = 0;

     

           for (int t = 0; t < size ; t++)

           {

                 if (array1[i] < array2[j])

                 {

                       array3[t] = array1[i];

                       i++;

                 }

                 else if (array2[j] < array1[i])

                 {

                       array3[t] = array2[j];

                     j++;

                 }

     

           }

     

    //display output array

     

         for (i = 0; i < (size1+size2); i++)

         {

             cout << array3[i] << " ";

         }

       system ("Pause");

          return 0;

    }

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    mtz
    mtz's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    neyse hatami buldum gerek kalmadi sagolun

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

     

    #include <iostream>
    //#include <stdlib.h>
    
    using namespace std;
    const int size = 100;
    
    
    
    int main()
    {
    
    //Example Arrays to test
        double array1[] ={-70, 3, 5123, 4.32, 595, -586,  293, 29581, 293.948, 0.235, -395981};
        double array2[] ={-930, -42, -542, -90.2, -0.32, 0.54, 2394, 59123, 5872};
    
    //Find number of items in arrays
        int size1 = sizeof(array1)/sizeof(array1[0]);
        int size2 = sizeof(array2)/sizeof(array2[0]);
        int i, j,a;
    
        int size = size1+size2;
    
    //Create third array with size equal to two original combined
    
        double array3[size];
    
    //Copying first array into first part of new array
        for (i = 0; i < size1; i++)
        {
            array3[i] = array1[i];
        }
    //Copy second array into new array so it comes right after copy if first array
    
        for (j = size1,a=0; j < (size1 + size2); j++,a++)
        {
            array3[j] = array2[a];
        }
    
        cout << "Array 1" << endl;
    
    // outputs for testing
        for (i = 0; i < size1; i++)
        {
            cout << array1[i] << " ";
        }
    
        cout << endl;
    
        cout << "Array 2" << endl;
        for (j = 0; j < size2; j++)
        {
            cout << array2[j] << " ";
        }
        cout << endl;
    
    
    
    //display output array
        cout << "Array 3\n";
        for (i = 0; i < (size1+size2); i++)
        {
            cout << array3[i] << " ";
        }
        cout << endl;
    
    // simple bubble sort..
        cout << "Sorted Array3\n";
        for (int t = 0; t < size ; t++)
        {
            for (int x=0;  x < size-1; x++)
            {
                if (array3[x] > array3[x+1])
                {
                    double temp = array3[x];
                    array3[x] = array3[x+1];
                    array3[x+1] = temp;
                }
            }
        }
    
    //display output array
    
        for (i = 0; i < (size1+size2); i++)
        {
            cout << array3[i] << " ";
        }
    
        return 0;
    }
    

    Hocam 2. Arrayı atarken ve sıralama yaparken hata yapmıştın.. Bu işini görür sanırım (:


    There are 10 types of people in the world. Those who knows binary and those who dont...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    ZoktriP bunu yazdı:
    -----------------------------

    const int size = 100;
    ..
    ..
    ..

    int size = size1+size2;
    ..
    ...
    ..
    -----------------------------

    Yukarda const tanımlanmış, aşağıda yeniden tanımlanmış. Çalışıyor mu böyle olunca?


    Sen hiç kaval çaldın mı?
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    JPriest bunu yazdı:
    -----------------------------

    ZoktriP bunu yazdı:
    -----------------------------

    const int size = 100;
    ..
    ..
    ..

    int size = size1+size2;
    ..
    ...
    ..
    -----------------------------

     

    Yukarda const tanımlanmış, aşağıda yeniden tanımlanmış. Çalışıyor mu böyle olunca?


    -----------------------------

    Yukardakini görmemiştim bile :D Kodu direk kopyalayıp üzerinde derleme yaptım..

    Çalışıyo bi sıkıntı çıkarmıyo, sonuçta farklı scope ta aynı değişkeni tekrar oluşturdum. Main içinde sıkıntı vermez yani (:


    There are 10 types of people in the world. Those who knows binary and those who dont...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Yukardakini silsek bir sıkıntı çıkarmaz o halde. Hatta bence daha iyi olur ;)


    Sen hiç kaval çaldın mı?
Toplam Hit: 958 Toplam Mesaj: 6