Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приминение тернарного оператора. Необходимо опреде 
:(
    Опции темы
Андрюшатина
Дата 28.11.2014, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 28.11.2014

Репутация: нет
Всего: нет



Прошу помочь. Я новичок. Не могу разобраться.

Задача: По номеру введенным пользователем (от 1 до 12), необходимо вывести на экран соответствующий месяц.
Примечание: Нельзя пользоваться никакими помощниками по типу Switch, If и т.д.
Главное: Необходимо использовать только "Тернарный оператор".


Я примерно понял принцип и логику. Ниже написал код. По нему все компилируется. Только не могу понять, как сделать так, что бы выводился "только один месяц".
У кого будут какие предложения? Может следует переписать код?

Код

#include <iostream>
using namespace std;
void main()
 
{
    int y1 = 0;
    const int y2 = 2, y4 = 4,  y6 = 6, y8 = 8, y10 = 10, y12 = 12;
    cin >> y1;
    cout << (y1<y2 ? "January" : "February")<<endl;
    cout << (y1<y4 ? "March" : "April") << endl;
    cout << (y1<y6 ? "May" : "June") << endl;
    cout << (y1<y8 ? "July" : "August") << endl;
    cout << (y1<y10 ? "September" : "Octomber") << endl;
    cout << (y1<y12 ? "November" : "December") << endl;
    
}




Заранее спасибо за ответы!

Это сообщение отредактировал(а) Андрюшатина - 28.11.2014, 03:06
PM MAIL   Вверх
Guinness
Дата 28.11.2014, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 21.6.2009
Где: Зеленоград

Репутация: 2
Всего: 10



Я бы просто проинициализировал std::vector<std::string> значениями названий месяцов, потом бы проверил введенное значение на корректность. Если значение корректно выводим ему элемент вектора с соответствующим номером, если нет - выводим "Bad argument".
PM MAIL   Вверх
borisbn
Дата 28.11.2014, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Если я правильно понял идею твоего препода, то код д.б. таким:

Код
cin >> y1;

cout << ( ( y1 == 1 ) ? "January" : ( ( y1 == 2 ) ? "February" : ( ( y1 == 3 ) ? "March" : ( ... и т.д. плюс куча закрывающих скобок )))


Можно чуть-чуть упростить
Код
#define T( month, monthName, other ) ( ( y1 == month ) ? monthName : ( other ) )

cout << T( 1,  "January", T( 2, "February", T( 3, "March", T(... и т.д. плюс куча закрывающих скобок )))



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.