2016-03-27 26 views
-2

kullanarak C ile ilgili sorunlar yaşıyorum Ben 2 float değişkenlerini bildirmek için C'de bazı temel kodları çalıştırmaya çalışıyorum ve daha sonra bunları böl ve bu değeri 3. değişkene koy. Bundan sonra ben derlemek ve kod çalıştırmasına çevrimiçi derleyici "www.ideone.com" kullanıyorum tüm 3.Float ve printf

#include <stdio.h> 
int main() 
{ 
    /* variable definition: */ 
    float a, b, c; 
    /* variable initialization */ 
    a = 1.2; 
    b = 2.7; 
    c = a/b; 
    printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c); 
    return 0; 
} 

yazdırmak ve bu alıyorum sonucudur:

Success time: 0 memory: 2156 signal:0 

Şamandıralar (a, b) ve bölüm (c) şunlardır: Ben kodunda bir hata yapmış belki eğer 1073741824,1072902963, -1610612736

kimse görebilir miyim? Bir sınıf için ve her şey int'den float'a değişene kadar her adım için iyi çalıştı.

printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c); 

Buna:

+0

% d tamsayı argümanlarını bekliyor, printf belgelerine bakın. – fvu

+0

http://www.cplusplus.com/reference/cstdio/printf/% d tamsayılar içindir, yüzdeler için% f. – OldProgrammer

cevap

1

Böylece, yüzen yazdırmak bu değiştirmek istediğiniz

fazlası için
printf("Floats (a,b) and quotient (c) are : %f,%f,%f \n", a,b,c); 

, ref kontrol edin.

printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c); 

için:

+1

Mükemmel çalıştığı için, bunu yapmam gerektiğini ya da belirli bir veri türüne özgü olduğum hakkında hiçbir fikrim yoktu! –

+0

Şimdi biliyorsun @RickHammer! ;) – gsamaras

0

%d yerine

değişiklik %f kullanmak şamandıra için doğru dönüşüm değil

printf("Floats (a,b) and quotient (c) are : %f,%f,%f \n", a,b,c); 

ve ince olmalıdır.