Zwracana wartość -nan(ind)

0

Jako, ze jest to mój pierwszy post na forum chciałbym się serdecznie przywitać. :D
Więc witam!

Ale gdy formalności mamy już za sobą to chciałbym się zapytać dlaczego, gdy kompiluję poniższy kod i wprowadzę wyjątek to za outputem mam dopisek -nan(ind)?

Something went wrong! Number -300 is lower than possible temperature!-nan(ind)

(tak wygląda kompilacja w przypadku liczby -300)

Program ma na celu oczywiście zamianę stopni Celsjusza na Kelvina, więc stopnie nie mogą być niższe od -273,15.
Z tego co zdążyłem się zorientować -nan(ind) jest wyświetlany, gdy wystąpi "nielegalna operacja", lecz nie mogę znaleźć niczego nietypowego w moim kodzie.

double ctok(double c)
{
	try
	{
		double k = c + 273.15;
		if (k < 0)
			throw c;
		return k;
	}

	catch (double celc)
	{
		std::cout << "\nSomething went wrong! Number " << celc << " is lower than possible temperature!";
	}
}

int main()
{
	
		double c = 0;
		std::cin >> c;
		double k = ctok(c);
		std::cout << k << std::endl;
}

Będę wdzięczny za jakiekolwiek wskazówki. ;)

0

jak złapiesz wyjątek to w ctok() nie wykonujesz instrukcji return czyli dostajesz śmieci

0

Właśnie zauważyłem swój błąd próbując ten kod na różnych przypadkach. Dzięki wielkie. ;)

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