printf nie wyświetla double

0

Testując parę przykładów natrafiłem na problem,mianowicie program napisany w ten sposób

#include <stdio.h>
#include <stdlib.h>

int main()
{

    double i;

    i = 1/2;
    printf("%f",i);

    return 0;
}

wyświetla 0.000000 .Co było dla mnie niemałym zdziwieniem.Ktoś wie o co tu chodzi?

2

1 jak i 2 są uważane przez kompilator jako liczby całkowite (int). Jedna z liczb musi być rzeczywista aby nie zostało zastosowane dzielenie całkowite.

i = 1.0/2;
2

Wszystko jest dobrze, kompilator używa liczb całkowitych. Bo tak zapisałeś je. Dzielenie całkowite 1 przez 2 daje 0. Zatem jest ok. Napisz tak:

i = 1.0/2.0;

I powinno być ok.

Ehh 25 sekund spóźnienia :]

0

i jeszcze: printf("%lf",i);

1 użytkowników online, w tym zalogowanych: 0, gości: 1