Форум программистов, компьютерный форум CyberForum.ru

Вывести название соответствующего времени года - C++

Восстановить пароль Регистрация
 
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 20:56     Вывести название соответствующего времени года #1
Я только начал изучать его, ну то есть в универ поступил, а в обычной школе до этого с ним не сталкивался, и много еще не знаю. Помогите пожалуйста.
Вот задача:
Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т. д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2011, 20:56     Вывести название соответствующего времени года
Посмотрите здесь:

Название времени года по месяцу C++
C++ По номеру года вывести его название, если 1984 был началом цикла — годом зеленой крысы
дан номер месяца (1-январь,2-февраль) Вывести название соответствующего времени года зима весна и т.д C++
C++ По номеру месяца определить название времени года
C++ По номеру месяца вывести соответствующее название времени года
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.10.2011, 21:03     Вывести название соответствующего времени года #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
 
std::string print_season(unsigned char value)
{
   std::string result;
   
   switch (value)
   {
      case 1:
      case 2:
      case 12:
      result.assign("Winter");
      break;
      case 3:
      case 4:
      case 5:
      result.assign("Spring");
      break;
      case 6:
      case 7:
      case 8:
      result.assign("Summer");
      break;
      case 9:
      case 10:
      case 11:
      result.assign("Autumn");
      break;
   }
}
 
int main()
{   
   std::cout << "Enter a number" << std::endl;
   unsigned char value = 1;
   std::cin >> value;
   std::cout << "It's " << print_season(value) << std::endl;
   return 0;
}
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 21:07  [ТС]     Вывести название соответствующего времени года #3
Спасибо, а есть еще какие-то способы написания ? Просто я впервые вижу "result.assign". "case" я так понимаю это обозначение номера месяца, а что значит "break" ?

Добавлено через 1 минуту
И еще компилятор выдает ошибку на 31 строке
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.10.2011, 21:09     Вывести название соответствующего времени года #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
int main()
{
    setlocale ( 0, "" );
 
    short int number;
    std::cout << "Number of month: ";
    std::cin >> number;
 
    if ( ( number >= 1 ) && ( number <= 2 ) || ( number == 12 ) )
        std::cout << "Зима" << std::endl;
    else
        if ( ( number >= 3 ) && ( number <= 5 ) )
            std::cout << "Весна" << std::endl;
        else
            if ( ( number >= 6 ) && ( number <= 8 ) )
                std::cout << "Лето" << std::endl;
            else
                std::cout << "Осень" << std::endl;
 
    std::cin.ignore();
    std::cin.get();
    return 0;
}
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.10.2011, 21:09     Вывести название соответствующего времени года #5
Flopsiq, поставь в конце return 0;
забыл..

Цитата Сообщение от Flopsiq Посмотреть сообщение
Просто я впервые вижу
и что дальше? я тоже это когда-то впервые увидел, но ничего, научился.
Ztrel
 Аватар для Ztrel
441 / 215 / 14
Регистрация: 14.11.2009
Сообщений: 371
10.10.2011, 21:14     Вывести название соответствующего времени года #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вариант "в лоб" =)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
int main()
{
 
    int choice; // для выбора пользователя.
    cout << "Please, enter value between 1 and 12:    "; // просьба ввести значение выбора.
    
    while (cin >> choice, choice <= 0 || choice > 12) // до тех пор, пока пользователь вбивает неверные значения..
        cout << endl << "Error value! Please, try again!";
    // если все хорошо, пишем большой условный оператор =)
 
    switch (choice) // переключатель, основанный на выборе пользователя.
    {
    case 1: case 2: case 12: 
        { cout << endl << "Winter!" << endl; // выбрал значения 1, 2, 12 .
          break;    
        }
 
    case 3: case 4: case 5: 
        { cout << endl << "Spring!" << endl; // выбрал значения 3, 4, 5.
          break;    
        }
 
    case 6: case 7: case 8:
        { cout << endl << "Summer!" << endl; // выбрал значение 6, 7, 8.
          break;    
        }
 
    case 9: case 10: case 11:
        { cout << endl << "Autumn'!" << endl; // выбрал значение 9, 10, 11.
          break;    
        }
    }
 
 
    // А теперь сделаем цикл, чтобы пользователь не вышел из программы, не увидев нашей красоты +))
 
    char c; // будущий вводимый символ.
 
    while (true) // бесконечный цикл.
    {
        cout << endl << "Enter '1' to exit! " << endl;
        cin >> c; // человек вводит символ.
        if (c == '1')
            break; // если ввел единичку - уйдем из цикла.
    }
 
    return 0;
}
Добавлено через 1 минуту
break - выход из ближайшего оператора условия или цикла - поправьте меня, если неправ =)
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 21:18  [ТС]     Вывести название соответствующего времени года #7
Mиxaил
Спасибо большое=)

Добавлено через 1 минуту
а std:: перед cout и сin обязательно ? или их надо писать когда в начале не было написано "using namespace std;" ?
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.10.2011, 21:22     Вывести название соответствующего времени года #8
Flopsiq, совершенно верно!
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 21:23  [ТС]     Вывести название соответствующего времени года #9
Цитата Сообщение от Mиxaил Посмотреть сообщение
Flopsiq, совершенно верно!
Не затруднит ответить еще на пару вопросов, если что-то будет не понятно ?
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.10.2011, 21:26     Вывести название соответствующего времени года #10
Цитата Сообщение от Flopsiq Посмотреть сообщение
Не затруднит ответить еще на пару вопросов, если что-то будет не понятно ?
Если по коду, то можно и тут. Иначе, лучше создать новый топик...
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 21:29  [ТС]     Вывести название соответствующего времени года #11
А почему у Вас слова "Зами,Весна,Осень,Лето" отображаются нормально, а не кракозябрами, без подключенной библиотеки <locale.h> ?

Добавлено через 1 минуту
И еще что значит "||", почему нельзя использовать также "&&" ?
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.10.2011, 21:32     Вывести название соответствующего времени года #12
C++
1
setlocale ( 0, "" );
- это локализация под кириллицу ( почитать тут )
"||" - or - или
"&&" - and - и
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 21:50     Вывести название соответствующего времени года
Еще ссылки по теме:

По названию месяца вывести его порядковый номер и название времени года. C++
C++ Вывести название соответствующего времени года по заданному номеру месяца
Вывести название времени года по месяцу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
10.10.2011, 21:50  [ТС]     Вывести название соответствующего времени года #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <conio.h>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, " ");    
    int number;
    cout << "Номер месяца: ";
    cin >> number;
 
    if ( ( number >= 1 ) && ( number <= 2 ) || ( number == 12 ) )
        cout << "Зима" << endl;
    else
        if ( ( number >= 3 ) && ( number <= 5 ) )
            cout << "Весна" << endl;
        else
            if ( ( number >= 6 ) && ( number <= 8 ) )
                cout << "Лето" << endl;
            else
                cout << "Осень" << endl;
    getch();
    return 0;
}
Вот код, я немного переделал, под привычный стандарт) как нас учили, но вот это "

setlocale ( 0, "" );" - удобная команда

Добавлено через 13 минут
Спасибо, Михаил.

 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
10.10.2011, 21:50     Вывести название соответствующего времени года
Ответ Создать тему
Опции темы

Текущее время: 21:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru