• 19-12-2017, 21:46:45
    #1
    teşekkürler sorun çözülmüştür.
  • 19-12-2017, 21:52:33
    #2
    Merhaba,

    İlk önce dizi de ki yarışmacıları toplam puana göre sıralama algoritması(misal bouble sort) ile koşullar kullanarak büyükten küçüğe sırala.
  • 19-12-2017, 22:18:02
    #3
    Penguenn adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    İlk önce dizi de ki yarışmacıları toplam puana göre sıralama algoritması(misal bouble sort) ile koşullar kullanarak büyükten küçüğe sırala.
    Toplam puanı sıraladım diyelim diğerlerini toplam puan sıralamasına göre nasıl sıralayacağım o kısmı anlayamadım.
  • 20-12-2017, 18:00:01
    #4
    Maybell adlı üyeden alıntı: mesajı görüntüle
    Toplam puanı sıraladım diyelim diğerlerini toplam puan sıralamasına göre nasıl sıralayacağım o kısmı anlayamadım.
    #include <stdio.h>
    #include <stdlib.h>
    #define YARISMACISAYISI 6
    int yarismaci[YARISMACISAYISI][4][1] = { 0 };
    void puanlariAl();
    void puanlariGoster();
    void sırala();
    int main()
    {
        puanlariAl();
        puanlariGoster();
        system("pause");
        return 0;
    }
    void puanlariAl()
    {
        for (int i = 0; i < YARISMACISAYISI; i++)
        {
            yarismaci[i][0][3] = i + 1;
            printf("%d. Yarismacinin koctan almis oldugu puani giriniz :", i + 1);
            scanf("%d", &yarismaci[i][0]);
            printf("%d. Yarismacinin seyirciden almis oldugu puani giriniz :", i + 1);
            scanf("%d", &yarismaci[i][1]);
            yarismaci[i][0][2] = yarismaci[i][0][0] + yarismaci[i][0][1];
        }
    }
    void puanlariGoster()
    {
        sırala();
        for (int i = 0; i < YARISMACISAYISI; i++)
        {
            printf("sira no = %d  |  yaris. no = %d  |  top p. = %d  |  koc p. = %d  |  sey. p. = %d\n", i + 1, yarismaci[i][0][3], yarismaci[i][0][2], yarismaci[i][0][0], yarismaci[i][0][1]);
        }
    }
    void sırala()
    {
        int degerAlYarNo, degerAlTopPuan, DegerAlKocPuani, DegerAlSeyirciPuani;
        int i, j;
        for (i = 1; i < YARISMACISAYISI; i++)
        {
            for (j = 0; j < YARISMACISAYISI - i; j++)
            {
                if (yarismaci[j][0][2] < yarismaci[j + 1][0][2]) // toplam puanı bir sonraki yarismacidan kücükse büyük olanı öne geçir
                {
                    degerAlYarNo = yarismaci[j][0][3];
                    yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                    yarismaci[j + 1][0][3] = degerAlYarNo;
                    degerAlTopPuan = yarismaci[j][0][2];
                    yarismaci[j][0][2] = yarismaci[j + 1][0][2];
                    yarismaci[j + 1][0][2] = degerAlTopPuan;
                    DegerAlKocPuani = yarismaci[j][0][0];
                    yarismaci[j][0][0] = yarismaci[j + 1][0][0];
                    yarismaci[j + 1][0][0] = DegerAlKocPuani;
                    DegerAlSeyirciPuani = yarismaci[j][0][1];
                    yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                    yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                }
                else if (yarismaci[j][0][2] == yarismaci[j + 1][0][2]) // toplam puanları eşitse
                {
                    if (yarismaci[j][0][0] < yarismaci[j + 1][0][0]) // koç puanı bir sonraki yarismacidan kücükse büyük olanı öne geçir
                    {
                        degerAlYarNo = yarismaci[j][0][3];
                        yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                        yarismaci[j + 1][0][3] = degerAlYarNo;
                        DegerAlKocPuani = yarismaci[j][0][0];
                        yarismaci[j][0][0] = yarismaci[j + 1][0][0];
                        yarismaci[j + 1][0][0] = DegerAlKocPuani;
                        DegerAlSeyirciPuani = yarismaci[j][0][1];
                        yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                        yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                    }
    /* Gereksiz kısım çünkü algoritma zaten eşitlik olsa bile bu ayarda sıralıyor.
                    else if ((yarismaci[j][0][0] == yarismaci[j + 1][0][0])) // koç puanları eşitse
                    {
                        if (yarismaci[j][0][3] > yarismaci[j + 1][0][3]) // yarışmacı numarası bir sonraki yarismacidan büyükse küçük olanı öne geçir
                        {
                            degerAlTopPuan = yarismaci[j][0][2];
                            yarismaci[j][0][2] = yarismaci[j + 1][0][2];
                            yarismaci[j + 1][0][2] = degerAlTopPuan;
                            degerAlYarNo = yarismaci[j][0][3];
                            yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                            yarismaci[j + 1][0][3] = degerAlYarNo;
                            DegerAlSeyirciPuani = yarismaci[j][0][1];
                            yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                            yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                        }
                    }
    */
                }
            }
        }
    }
  • 20-12-2017, 19:33:11
    #5
    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    #include <stdio.h>
    #include <stdlib.h>
    #define YARISMACISAYISI 6
    int yarismaci[YARISMACISAYISI][4][1] = { 0 };
    void puanlariAl();
    void puanlariGoster();
    void sırala();
    int main()
    {
        puanlariAl();
        puanlariGoster();
        system("pause");
        return 0;
    }
    void puanlariAl()
    {
        for (int i = 0; i < YARISMACISAYISI; i++)
        {
            yarismaci[i][0][3] = i + 1;
            printf("%d. Yarismacinin koctan almis oldugu puani giriniz :", i + 1);
            scanf("%d", &yarismaci[i][0]);
            printf("%d. Yarismacinin seyirciden almis oldugu puani giriniz :", i + 1);
            scanf("%d", &yarismaci[i][1]);
            yarismaci[i][0][2] = yarismaci[i][0][0] + yarismaci[i][0][1];
        }
    }
    void puanlariGoster()
    {
        sırala();
        for (int i = 0; i < YARISMACISAYISI; i++)
        {
            printf("sira no = %d  |  yaris. no = %d  |  top p. = %d  |  koc p. = %d  |  sey. p. = %d\n", i + 1, yarismaci[i][0][3], yarismaci[i][0][2], yarismaci[i][0][0], yarismaci[i][0][1]);
        }
    }
    void sırala()
    {
        int degerAlYarNo, degerAlTopPuan, DegerAlKocPuani, DegerAlSeyirciPuani;
        int i, j;
        for (i = 1; i < YARISMACISAYISI; i++)
        {
            for (j = 0; j < YARISMACISAYISI - i; j++)
            {
                if (yarismaci[j][0][2] < yarismaci[j + 1][0][2]) // toplam puanı bir sonraki yarismacidan kücükse büyük olanı öne geçir
                {
                    degerAlYarNo = yarismaci[j][0][3];
                    yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                    yarismaci[j + 1][0][3] = degerAlYarNo;
                    degerAlTopPuan = yarismaci[j][0][2];
                    yarismaci[j][0][2] = yarismaci[j + 1][0][2];
                    yarismaci[j + 1][0][2] = degerAlTopPuan;
                    DegerAlKocPuani = yarismaci[j][0][0];
                    yarismaci[j][0][0] = yarismaci[j + 1][0][0];
                    yarismaci[j + 1][0][0] = DegerAlKocPuani;
                    DegerAlSeyirciPuani = yarismaci[j][0][1];
                    yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                    yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                }
                else if (yarismaci[j][0][2] == yarismaci[j + 1][0][2]) // toplam puanları eşitse
                {
                    if (yarismaci[j][0][0] < yarismaci[j + 1][0][0]) // koç puanı bir sonraki yarismacidan kücükse büyük olanı öne geçir
                    {
                        degerAlYarNo = yarismaci[j][0][3];
                        yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                        yarismaci[j + 1][0][3] = degerAlYarNo;
                        DegerAlKocPuani = yarismaci[j][0][0];
                        yarismaci[j][0][0] = yarismaci[j + 1][0][0];
                        yarismaci[j + 1][0][0] = DegerAlKocPuani;
                        DegerAlSeyirciPuani = yarismaci[j][0][1];
                        yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                        yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                    }
                    else if ((yarismaci[j][0][0] == yarismaci[j + 1][0][0])) // koç puanları eşitse
                    {
                        if (yarismaci[j][0][3] > yarismaci[j + 1][0][3]) // yarışmacı numarası bir sonraki yarismacidan büyükse küçük olanı öne geçir
                        {
                            degerAlTopPuan = yarismaci[j][0][2];
                            yarismaci[j][0][2] = yarismaci[j + 1][0][2];
                            yarismaci[j + 1][0][2] = degerAlTopPuan;
                            degerAlYarNo = yarismaci[j][0][3];
                            yarismaci[j][0][3] = yarismaci[j + 1][0][3];
                            yarismaci[j + 1][0][3] = degerAlYarNo;
                            DegerAlSeyirciPuani = yarismaci[j][0][1];
                            yarismaci[j][0][1] = yarismaci[j + 1][0][1];
                            yarismaci[j + 1][0][1] = DegerAlSeyirciPuani;
                        }
                    }
                }
            }
        }
    }
    Hocam ellerinize sağlık, akşam eve gidince tam olarak bakacağım ama büyük ihtimalle yapmış gibisiniz.
    Ne kadar teşekkür etsem azdır.