Wątek przeniesiony 2015-01-14 10:28 z C/C++ przez ŁF.

typy zmiennych, dzielenie

annna
2015-01-13 18:05
annna
0

dlaczego taki kod po wpisaniu a=6, b=5 daje wynik 1 skoro wynik jest typem float czyli zmiennoprzecinkowy?

#include <iostream>

using namespace std;
int a,b;
float c;
int main()
{
    cin >> a;
    cin >> b;
    c=a/b;
    cout<< "=" <<c;
    return 0;
}

Pozostało 580 znaków

2015-01-13 18:11

Rejestracja: 8 lat temu

Ostatnio: 2 lata temu

Lokalizacja: Wrocław

1

Tak jest ponieważ dzielisz int przez int, otrzymując kolejny int. Dopiero po wykonaniu tej operacji, otrzymana wartość jest rzutowana na float.

edytowany 1x, ostatnio: Zellus, 2015-01-13 18:12

Pozostało 580 znaków

annna
2015-01-13 18:16
annna
0

a jeśli będę dzielił np. double przez int i w wyniku chcę float, to jaki typ będzie mi rzutowało na float po wykonaniu dzielenia?

Pozostało 580 znaków

2015-01-13 18:18

Rejestracja: 6 lat temu

Ostatnio: 4 dni temu

Lokalizacja: Szczecin

1
#include <iostream>

int main()
{
    int a = 5, b = 2;
    std::cout << (double)(a) / b;

    return 0;
}

Pozostało 580 znaków

2015-01-13 19:08

Rejestracja: 15 lat temu

Ostatnio: 3 minuty temu

0

Jak wyżej lub tak:

   std::cout<<a/(double)b;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

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