[C++] Czemu wyrzuca 0

Forum dotyczące ogólnie pojętego programowania - algorytmów, struktur danych, narzędzi programistycznych, itp - głównie w kontekście komputerów PC.
ODPOWIEDZ
Awatar użytkownika
Luminofor
Użytkownik
Posty: 1373
Rejestracja: 27 lis 2007, 17:17
Lokalizacja: Polska

[C++] Czemu wyrzuca 0

Post autor: Luminofor » 25 mar 2009, 17:45

Czemu wyrzuca 0 dla x rożnych od 1 i -1 ?

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main()
{
	int x;
	bool wynik;
	cout << "Podaj x: ";
	cin >> x;
	wynik = (x*(1/x)==1.0);
	cout << wynik << endl; 
}

Awatar użytkownika
cichy
-
Posty: 4
Rejestracja: 18 mar 2009, 17:03
Lokalizacja: Gliwice

Post autor: cichy » 25 mar 2009, 19:44

Kod: Zaznacz cały

#include <iostream> 

using namespace std; 

int main() 
{ 
    int x; 
    bool wynik; 
    cout << "Podaj x: "; 
    cin >> x; 
    wynik = (x*>>>>(1/x)<<<<==1.0); << tutaj nastepuje dzielenie a potem obcinana jest  część ułamkowa czyli w przypadkach innych niż 1 i -1 zwracana jest wartość 0. Tak się dzieje gdyż operacje są przeprowadzane na zmiennych typu całkowitego wiec wynikiem jest typ całkowity.
    cout << wynik << endl; 
}

ODPOWIEDZ