• 14-11-2017, 02:57:13
    #1
    Üyeliği durduruldu
    Aşağıdaki kodu derste çözdüğümüzde çıktısı ;

    ilk satır : 3 ve 0
    ikinci satır 9 ve 2 olarak cevabı mevcut.

    Fakat programda çalıştırdığımda farklı bir sonuç veriyor. Nerede bir yanlışlık var acaba ?

    ayrıca bu satırdaki işlem nasıl yapılır yani işlem önceliği nasıl acaba ; a2 -= a3-- + --a1;

    a2 - (a3--+ --a1); şeklinde çözülmesi gerekiyor değil mi ?



    #include <stdio.h>

    int main()
    {
    int a1 = 3, a2 = 0, a3;

    a1 += a2;
    a3 = a1 + 10/a1 + a2;
    a2 -= a3-- + --a1;

    printf("%d \t %d \n", a1, a2);

    a3 += a1--;

    printf("%d\t %d", a3++, a1);

    return 0;

    }
  • 15-11-2017, 00:45:18
    #2
    Hocam yorum satırlarıyla açıklamaya çalıştım umarım faydalı olur.
    int main(){
    int a1 = 3, a2 = 0, a3;
        a1 += a2; // a1 = 3
        a3 = a1 + 10/a1 + a2; // a3 = 3 + 10/3 + 0 = 3+3+0 = 6
        a2 -= a3-- + --a1; // a2 = 0 - ( 6 + 2 ) = -8 --->>> bu satırdan sonra a3:5 ve a1:2
        printf("%d \t %d \n", a1, a2);
        a3 += a1--; // a3 = 5 + 2 = 7 // bu satırdan sonra a1: 1
        printf("%d\t %d", a3++, a1);
        return 0;
    }
  • 15-11-2017, 02:07:15
    #3
    Üyeliği durduruldu
    MertTopuz adlı üyeden alıntı: mesajı görüntüle
    Hocam yorum satırlarıyla açıklamaya çalıştım umarım faydalı olur.
    int main(){
    int a1 = 3, a2 = 0, a3;
        a1 += a2; // a1 = 3
        a3 = a1 + 10/a1 + a2; // a3 = 3 + 10/3 + 0 = 3+3+0 = 6
        a2 -= a3-- + --a1; // a2 = 0 - ( 6 + 2 ) = -8 --->>> bu satırdan sonra a3:5 ve a1:2
        printf("%d \t %d \n", a1, a2);
        a3 += a1--; // a3 = 5 + 2 = 7 // bu satırdan sonra a1: 1
        printf("%d\t %d", a3++, a1);
        return 0;
    }
    Anladım hocam, çok teşekkürler