SORU-1
int k=0, m, n=7;
n = k++ + --n;
SORU-2
int k=5, m, n=2;
m = --k + n;
SORU-3
int i, j, k;
i = 2; j = 3 + i++;
k = 3 + ++i;
i *= ++k + j--;
i /= k-- + ++j;
SORU-4
int i = 0, j = 6,k = 4,m = 5;
m = k-- + ++i; SORU-5
int i = 0, j = 6, k=4 ,m=5;
m *= j % 4;
m *= j % 4;
SORU-6
m += k++ + (j-- * ++i);
blogun atama işlemeri ksmındaki 6 soru için değişkenlerin son değerlerini nelerdir yazınız?
YanıtlaSilint k=0, m, n=7;
YanıtlaSiln = k++ + --n;
ilk önce k'yı 2 kez arttır; sonra atama yap diyor yani k=2, sonra n'i 2 eksilt sonra atama yap diyor yani n=5 bence sonuç böyle...
int k=5, m, n=2;
YanıtlaSilm = --k + n;
sanırım k'yı 2 kez eksilt diyor yani
k = 3 3 + 2 = 5
int i = 0, j=6, k=4 , m=5;
YanıtlaSilm += k++ + (j-- * ++i); bunu pek anlamadım :(
int k=0, m, n=7;
YanıtlaSiln = k++ + --n;
ilk önce k'yı 2 kez arttır; sonra atama yap diyor yani k=2, sonra n'i 2 eksilt sonra atama yap diyor yani n=5 bence sonuç böyle...
önce bi düzeltme yapayım
m=k++ + --n; olacaktı yanlış yazmışım. neyse
cevabında k 2 kez artmıyor k bir arttırılıp sonra toplanıyor ama ++ değişkenden sonra yazıldığı için toplama yapılıpdıktan sonra k bir artıyor. n değişkeninin önünde -- olduğu için önce n bir azaltılıyor sonra toplanıyor.
yani k ile (n-1)--n toplanıyor sonuç m aktarılıyor sonrada k 1 arttırılıp k ya aktarılıyor.
int k=5, m, n=2;
YanıtlaSilm = --k + n ise -- k nın önünde olduğundan önce eksiltme yapılıyor sonra n ile toplanıyor.
4 + 2=6 m ye aktarılır.
m=6 k=4 ve n=2
int i = 0, j=6, k=4 , m=5;
YanıtlaSilm += k++ + (j-- * ++i);
işlem önceliği önce
parantez içi
üs
çarpma
bölme
toplama
çıkarma
int i = 0, j=6, k=4 , m=5;
m += k++ + (j-- * ++i);
6 * 1 i' yi 1 arttır ++ önde
6 çarp sonra j 1 eksilt j=5
4++ + 6 4 ile 6 topla
10 ++ arkada olduğunda işlemden sonra arttırma yapılır. k=5
m+=10 m=m+ 10 demek
5+10=15
m=15, k=5 j=5 i=1