Program liczący liczby nieparzyste

0

Otóż mam napisać program który wczytuje liczby od użytkownika i zlicza ilość liczb nieparzystych całkowitych + podaje czy liczba jest w przedziale [-5,5]. Problem pojawia się, kiedy wpisze się liczbę typu zmiennoprzecinkowego, wówczas program również je liczy do ilości liczb nieparzystych. Drugi problem to jak wpiszę liczbę na przykład 5,5 to wyświetla że podano liczbę w przedziale [-5,5]. Jak to naprawić?

#include <iostream>
using namespace std;

int main()
{
	setlocale(LC_ALL, "pl_PL");
	int n, ln=0;
	do
	{
		cin >> n;
		while (!cin.good())
		{
			cout << "Błąd" << "\n";
			cin.clear();
			cin.ignore(10, '\n');
			cin >> n; 
		}
		if (n % 2 != 0) ln++;
        if (n >= -5 && n <= 5) cout << "Podano liczbę z zakresu [-5,5]" << "\n";

	} while (n != 99);
	cout << "\nIlość liczb całkowitych nieparzystych: " << ln << "\n";
	return 0;
}

Z góry dzięki za pomoc.

0
  1. Jak wczytasz 5.5 do zmiennej typu int to jej wartość będzie wynosiła 5. Dlatego drugi warunek jest spełniony.
  2. Tak samo jest z twoją nieparzystością. Jak wpiszesz 12.5 to nie będziesz miał tego wliczonego do nieparzystych, ale jak wpiszesz 11.5 to już tak.
0

Najpierw Sprawdzaj czy liczby są w przedziale, a potem konwert do int i pozostałe warunki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.