C programlama

mechatronic37

MB Üyesi
Kayıt
5 Kasım 2019
Mesajlar
3
Tepkiler
2
Yaş
20
Meslek
Öğrenci
Üniv
Namık Kemal
C:
#include <stdio.h>                   

main(){

    int a = 10, b = 3;

    while(a > b) {

    b *= 2;

    printf("%d", ++a);

    }

    printf("%d", b+=a);

    if (a=b) printf("%x", a);

}
çıktısı: 1112418 bana olayı anlatabilecek var mı lütfen
 

Dosyalar

cml_by

MB Üyesi
Kayıt
14 Ekim 2018
Mesajlar
33
Tepkiler
6
Yaş
28
Meslek
Elektronik Mühendisi
Üniv
Sakarya Üniversitesi
printf() 'lerde \n koymamışsın. Tüm çıktıyı yanyana yazdırmış. O mu karıştırdı aklını?
Neyi anlamadın ?
 
Konu sahibi
Konu sahibi
M

mechatronic37

MB Üyesi
Kayıt
5 Kasım 2019
Mesajlar
3
Tepkiler
2
Yaş
20
Meslek
Öğrenci
Üniv
Namık Kemal
hayır şu 11 12 24 18 nerden geldi onu anlatır mısınız? Kodu ben yazmadım. Ders slaytında var. Kodun mantığı ne?
 

cml_by

MB Üyesi
Kayıt
14 Ekim 2018
Mesajlar
33
Tepkiler
6
Yaş
28
Meslek
Elektronik Mühendisi
Üniv
Sakarya Üniversitesi
{
int a = 10, b = 3;
while(a > b) {
b *= 2;
printf("%d", ++a);
}
while, parantez içindeki sorgu doğru olana kadar içindeki kodları dödürür.
*ilk döngü için -> a=10, b=3 while(10>3) doğru. O zaman b *=2 yap (yani b = b*2 demek) ve a'yı bir arttır ekrana bas. (ekran görüntüsü: 11)
*ikinci döngü için-> a=11 b=6 while(11>6) doğru. b *=2 (b:12 oldu) a'yı bir arttır ekrana bas. (ekran görüntüsü: 12)
*üçüncü kez döngüye girmez çünkü while(12>12) ifadesi artık yanlış.


printf("%d", b+=a); //burda b = b+a işlemini ekrana bas demek.. yani b= 12+12 yapar. ekranda o yüzden 24 yazar.

if (a=b) printf("%x", a); //bu kısımda bende şaşırdım şimdi. bu a ile be eşit ise a yı ekrana bas demek. sadece burda %x olarak ekrana bas demiş. 16 tabanda yani. ekran görüntüsü 18. o da onluk tabanda 24 eder. ama a nasıl 24 oldu onu da anlamış değilim bende. Bu kısmı da başka birine sorup banada cevap yazarsan sevinirim. Basit bir şey gözümden kaçıyor ama ne..?
(not : dediğim gibi, %x o değeri hexadecimale çevir öyle yaz demek.. %d direk onluk tabanda ekrana yaz demek.)
 

cml_by

MB Üyesi
Kayıt
14 Ekim 2018
Mesajlar
33
Tepkiler
6
Yaş
28
Meslek
Elektronik Mühendisi
Üniv
Sakarya Üniversitesi
Kim yazmışsa çok güzel bir cevap olmuş. son kısımdaki if(a=b) ye dikkat etmemişim. ben if(a==b) gibi algıladım.
Teşekkür ederim
 
Yukarı Alt