2016-04-14 12 views
-3

Bana bunun neden çalışmadığını söyleyen var mı?Kişinin yaşını oluşturma

{ 

    int age; 
    int birthYear; 
    char name; 

    printf("Type in your birth year: \n"); 
    scanf("%d", birthYear); 

    age = 2016 - birthYear; 

    printf("You are %d years old.\n", age); 
} 
+0

Sen http://stackoverflow.com/editing-help okumalısınız – jonrsharpe

+0

Kullan '{}' düğme kaynak kodunu biçimlendirmek için. Ayrıca, dizginiz "Kabaca% d yaşındasınız. \ N" ';) –

+0

İşlev üstbilgisini, gerekli kitaplık başlıklarını ve diğer bazı öğeleri kaçırıyor olmalısınız. Basit okuma [sor]. – Olaf

cevap

3

Sen adresini sağlamanız gerekir senin intscanf() için:

scanf("%d", &birthYear); 

ilave açıklamalar: Eğer koymazsanız & Eğer scanf() bir unitialized int geçecek ve scanf() bunu bir işaretçi olarak yorumlayacaktır. Girdi daha sonra değişkende saklanmayacaktır (bu, birimileştirilmiş olarak kalır). Daha da kötüsü: Bu, bellek bozulmasında sonuçlanabilir.

İlgili konular