Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2007, 17:16   #1
Fynj
Новичок
Джуниор
 
Регистрация: 17.12.2007
Сообщений: 2
По умолчанию Объясните, пожалуйста смысл строки - res=d.year > year ? -1: (d.year < year? 0:1)

res=d.year > year ? -1: (d.year < year? 0:1)
Сия строчка взята с программы написанной на языке Си. Программа работает, ошибок нет. Это условие. Вот только как оно работает я не знаю. Пожалуйста, объясните.
ЗЫ: в данной ситуации поиск не рулит, ибо даже понятия не имею как можно найти ответ на такой вопрос в поиске.

Вот полностью процедура:
int dates::cmp(dates d) {
int res;
res=d.year > year ? -1: (d.year < year? 0:1);
if(res) return res;
res=d.mon > mon ? -1: (d.mon < mon ? 0:1);
if(res) return res;
return d.day > day ? -1: (d.day < day ? 0:1);
}

Заранее спасибо.
Fynj вне форума Ответить с цитированием
Старый 17.12.2007, 17:34   #2
theos
Форумчанин
 
Аватар для theos
 
Регистрация: 10.12.2007
Сообщений: 158
По умолчанию

Оператор

(условие) ? (знач.1) : (знач.2)

В любом выражении, если условие верно, используется знач.1, если ложно - знач.2.

Напр. максимум из 2х чисел a и b записывается так - (a>b)?a:b

Ещё пример - перевод числа в 16ричн. систему.

Код:
bool uc = false; // upper case
int i = 5; // 0 to 15
char c;
c = ((!uc)?"0123456789abcdef":"0123456789ABCDEF")[i];
У тебя:
Код:
res=d.year > year ? -1: (d.year < year? 0:1)
если d.year больше year - возвр -1, если меньше - 0, если равна - единицу

Последний раз редактировалось theos; 17.12.2007 в 17:36.
theos вне форума Ответить с цитированием
Старый 17.12.2007, 17:50   #3
Fynj
Новичок
Джуниор
 
Регистрация: 17.12.2007
Сообщений: 2
По умолчанию

Cпасибо, очень благодарен.
Fynj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем смысл жизни? NNN Свободное общение 76 14.07.2008 21:16
В Edit - Inicial и Year в соответствии с выбранной записью в комбобоксе Колян12 БД в Delphi 2 26.05.2008 03:49
Объясните пожалуйста TheHerd Паскаль, Turbo Pascal, PascalABC.NET 12 04.04.2008 21:33