• 26-05-2020, 11:19:42
    #1
    Merhaba

    elimizde aşağıdaki gibi bir matris var. Bu matrisin içersinde ki rakamlardan çift olan varmı yokmu kontrolünü yapmak istiyorum. Tek pointer ile yaptım ancak pointer to pointer olarak isteniyor, burada tıkandım. Bilen arkadaşlar yardım edebilir lermi?

    Şimdiden teşekkür ederim.

    int **matris1Ptr = new int* [satir1]; //dizinin birinci boyutu
    for (int i = 0; i < satir1; i++)
    matris1Ptr[i] = new int[sutun1]; //dizinin ikinci boyutu

    matris1Ptr[0][0] = 2;
    matris1Ptr[0][1] = 7;
    matris1Ptr[0][2] = 6;
    matris1Ptr[1][0] = 9;
    matris1Ptr[1][1] = 5;
    matris1Ptr[1][2] = 1;
    matris1Ptr[2][0] = 4;
    matris1Ptr[2][1] = 7;
    matris1Ptr[2][2] = 8;

    --------------------------------------------------------------------------------------------
    // örneğim tek pointer lı olanı şöyle

    #include <iostream>
    using namespace std;

    int donus(int *table, int str, int stn)
    {
    int* p = NULL;
    p = table;
    for (int i = 0; i < (stn*str-1); i++)
    for (int j = i+1 ; j < (stn*str); j++)
    if (p[i] == p[j]) return p[i];
    return -1;
    }

    int main()
    {
    setlocale(LC_ALL, "Turkish");
    int satir = 5, sutun = 4;
    int tablo[5][4] = {
    {64, 72, 2, 13},
    {1, 29, 3, 41},
    {57, 80, 17, 8},
    {24, 35, 7, 96},
    {6, 5, 9, 80} };

    int *p = tablo[0];

    int dns = donus(*&p, satir, sutun);
    if (dns == -1)
    printf("Eşleşen Sayı Bulunamadı !");
    else
    printf("Eşleşen Sayı = %d ", dns);
    return 0;
    system("pause");
    }
    -----------------------------------------------------------------------------------------------

    Bana pointer to pointer lı olan lazım. Yani *table değil de **table gibi, **table nin tek tek hücrelerine nasıl erişebilirim.
  • 26-05-2020, 19:09:02
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    aves adlı üyeden alıntı: mesajı görüntüle
    Merhaba

    elimizde aşağıdaki gibi bir matris var. Bu matrisin içersinde ki rakamlardan çift olan varmı yokmu kontrolünü yapmak istiyorum. Tek pointer ile yaptım ancak pointer to pointer olarak isteniyor, burada tıkandım. Bilen arkadaşlar yardım edebilir lermi?

    Şimdiden teşekkür ederim.

    int **matris1Ptr = new int* [satir1]; //dizinin birinci boyutu
    for (int i = 0; i < satir1; i++)
    matris1Ptr[i] = new int[sutun1]; //dizinin ikinci boyutu

    matris1Ptr[0][0] = 2;
    matris1Ptr[0][1] = 7;
    matris1Ptr[0][2] = 6;
    matris1Ptr[1][0] = 9;
    matris1Ptr[1][1] = 5;
    matris1Ptr[1][2] = 1;
    matris1Ptr[2][0] = 4;
    matris1Ptr[2][1] = 7;
    matris1Ptr[2][2] = 8;

    --------------------------------------------------------------------------------------------
    // örneğim tek pointer lı olanı şöyle

    #include <iostream>
    using namespace std;

    int donus(int *table, int str, int stn)
    {
    int* p = NULL;
    p = table;
    for (int i = 0; i < (stn*str-1); i++)
    for (int j = i+1 ; j < (stn*str); j++)
    if (p[i] == p[j]) return p[i];
    return -1;
    }

    int main()
    {
    setlocale(LC_ALL, "Turkish");
    int satir = 5, sutun = 4;
    int tablo[5][4] = {
    {64, 72, 2, 13},
    {1, 29, 3, 41},
    {57, 80, 17, 8},
    {24, 35, 7, 96},
    {6, 5, 9, 80} };

    int *p = tablo[0];

    int dns = donus(*&p, satir, sutun);
    if (dns == -1)
    printf("Eşleşen Sayı Bulunamadı !");
    else
    printf("Eşleşen Sayı = %d ", dns);
    return 0;
    system("pause");
    }
    -----------------------------------------------------------------------------------------------

    Bana pointer to pointer lı olan lazım. Yani *table değil de **table gibi, **table nin tek tek hücrelerine nasıl erişebilirim.

    https://www.onlinegdb.com/SkP00hqiI

    Doğru mu anladım bilmiyorum ama. İşine yarayabilir.
  • 26-05-2020, 21:14:07
    #3
    Matris elemanlarını yazdırmak değil de eş olan eleman var mı yok mu kontrol etmek olacak.

    {64, 72, 2, 13},
    {1, 29, 3, 41},
    {57, 80, 17, 8},
    {24, 35, 72, 96},
    {6, 5, 9, 80} };

    Örneğin 72 çift diyecek. Yalnız burada matris kullanırken **table şeklinde olacak.

    Teşekkürler.
  • 27-05-2020, 20:31:45
    #4
    aves adlı üyeden alıntı: mesajı görüntüle
    Matris elemanlarını yazdırmak değil de eş olan eleman var mı yok mu kontrol etmek olacak.

    {64, 72, 2, 13},
    {1, 29, 3, 41},
    {57, 80, 17, 8},
    {24, 35, 72, 96},
    {6, 5, 9, 80} };

    Örneğin 72 çift diyecek. Yalnız burada matris kullanırken **table şeklinde olacak.

    Teşekkürler.

    https://onlinegdb.com/SJVamQhsL

    Bu şekilde mi ?
  • 27-05-2020, 20:57:20
    #5
    sawashan adlı üyeden alıntı: mesajı görüntüle
    Eline sağlık olmuş, teşekkür ederim.
    R10+