|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dmitriy Yaroshevich 2:4635/1024.312 30 Jan 2003 04:16:26 To : Ilya Rogov Subject : чётное/не чётное? --------------------------------------------------------------------------------
Hi, Ilya!
Воскресенье 26 Январь 2003, Ilya Rogov wrote to Alexander Lezin:
SA>>>> if( ((Chislo/2)*2)!=Chislo ) {значить нечетное}
IR>>> Если они целочисленные, то компилятор должен выдать ошибку на
IR>>> операцию "/", ибо она выводит нас из класса целых чисел.
AL>> Компилятор с языка С в этом случае ничего не должен, ибо в языке
AL>> С результатом деления двух целых чисел будет целое число.
IR> Только щаз проверил. Ты прав. 6/7=0, если результат должен был быть
IR> int. Hо имхо это глупо, что ошибка не выдаётся.
Это не глупо. Просто так оно (С) всегда работало и в этом есть свой смысл.
А вообще есть много способов проверить на чет\нечет в любом языке, при любых
ограничениях.
Hекоторые (большой список - лень)
1. X div 2 (Pas) тоже на С
2. X and 2 (and в смысле &)
3. x/2-int(x/2)=0 (== С)
4. abs(x/2-trunc(x/2))<=e для дробных чисел с указанием точности проверки.
еще в асме и т.д. и т.п.
Смотри что тебе больше подходит и используй без никаких проблем.
Всего наилучшего тебе, Ilya!
Dmitriy
--- GoldED+/W32 1.1.4.7
* Origin: (2:4635/1024.312)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/52273e387cfd.html, оценка из 5, голосов 10
|