C Yanyana Karışık Bir İşlem (Yardım)
-
int x=1, y=2, z=3, t=4;
void main() {
x = 3 + (t*=y+=z-=t+2)-7 + -y; // burayı çözemedim
printf("%d %d %d %d", x, y, z, t);
}(t*=y+=z-=t+2) Burayı nasıl hesaplayamam gerektiğini bir türlü çözemedim.Bunları daha kolay nasıl çzöebilirim?Nasıl gruplandırabilirim çıkarmak için?
ilkten başlarıyorum t=t*y oluyor fakat yanındaki +=z yi nasıl hesaba katmalıyım ?
-
c de hesaplar sağdan sola olması gerekiyordu sanırım
-
SinusX bunu yazdı:
-----------------------------
c de hesaplar sağdan sola olması gerekiyordu sanırım
-----------------------------sağdan sola şeklinde düşündüm gene çıkamadım hatta tersinide düşündüm soldan sağa dogru başlayamadım
-
işlemini bilmediğimden (önce hangi işlemi yapıcağını) direk sorunun cevabını buraya yazamıyorum, ama hatanın sebebi tek satırda sadace bir tane atama yapılır(yani tek eşittir) sağdan sola doğru...
-
(t=t*(y=y+(z=z-(t+2))))
olarak dene
hata verirse
z=z-(t+2);
y=y+z;
t=t*y;
x=3+t-7-y;
-
Lathedarkman bunu yazdı:
-----------------------------
(t=t*(y=y+(z=z-(t+2))))
olarak dene
hata verirse
z=z-(t+2);
y=y+z;
t=t*y;
olarak yap
-----------------------------ilk yazdığın oldu süpersin hocam çok teşekkür ederim :)
-
SinusX bunu yazdı:
-----------------------------
c de hesaplar sağdan sola olması gerekiyordu sanırım
-----------------------------
C'de kesin bir siralama yoktur, compiler yazanlara birakilmistir. Ornegin 1+3+4; (1+3)+4 veya (4+3)+1 veya (1+4)+3 olarak islem gorebilir.