printf nie wyświetla double

Odpowiedz Nowy wątek
2017-06-10 20:32
Grunding
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?

Pozostało 580 znaków

2017-06-10 20:36
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;

Asm/C/C++

Pozostało 580 znaków

2017-06-10 20:36
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 :]

edytowany 1x, ostatnio: Mr.YaHooo, 2017-06-10 20:36
pfff.. co tak wolno. - mwl4 2017-06-10 20:39
@mwl4 cóż, moja wina. Następnym razem się postaram. - Mr.YaHooo 2017-06-10 20:40

Pozostało 580 znaków

2017-06-10 21:32
0

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


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
a racja pochrzaniło mi się ze scanf które wymaga %lf dla double. - MarekR22 2017-06-10 22:11

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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