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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Flopsiq
0 / 0 / 0
Регистрация: 10.10.2011
Сообщений: 15
#1

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

10.10.2011, 20:56. Просмотров 865. Ответов 12
Метки нет (Все метки)

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

Вывести название соответствующего времени года по заданному номеру месяца - C++
3.Дано номер месяца — целое число в диапазоне 1-12(1 — январь, 2 — февраль и т. д.). Вывести название соответствующего времени года...

Вывести название времени года по месяцу - C++
Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае если...

По номеру месяца вывести соответствующее название времени года - C++
Задача 4. (1-4.cpp, 14.dsp) Написать программу, которая запрашивает у пользователя номер месяца, а затем выводит соответствующее название...

По названию месяца вывести его порядковый номер и название времени года. - C++
Составить программу, которая бы по названию месяца выдавала бы его порядковый номер и название времени года.

Название времени года по месяцу - C++
Помогите исправить, при любом исходе пишит, что загадываемый месяц - spring, где я не прав?

По номеру месяца определить название времени года - C++
Написать программу которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года.В случае если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sandye51
программист С++
682 / 584 / 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ил
533 / 438 / 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
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.10.2011, 21:09 #5
Flopsiq, поставь в конце return 0;
забыл..

Цитата Сообщение от Flopsiq Посмотреть сообщение
Просто я впервые вижу
и что дальше? я тоже это когда-то впервые увидел, но ничего, научился.
Ztrel
443 / 217 / 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ил
533 / 438 / 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ил
533 / 438 / 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ил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.10.2011, 21:32 #12
C++
1
setlocale ( 0, "" );
- это локализация под кириллицу ( почитать тут )
"||" - or - или
"&&" - and - и
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 минут
Спасибо, Михаил.

 Комментарий модератора 
Используйте теги форматирования кода!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 21:50
Привет! Вот еще темы с ответами:

Вывести название соответствующего введенному числу месяца - C++
Написать программу, которая по заданному числу (от 1 до 12) выводит название соответствующего ему месяца

Напишите программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года - C++
Напишите программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года. В случае, если...

По номеру года вывести его название, если 1984 был началом цикла — годом зеленой крысы - C++
Помогите отладить программу задача которой : В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов,...

Для каждого времени года вывести расход, а затем - общую сумму расхода - C++
как написать правильно? #include &lt;iostream&gt; using namespace std; const int Seasons = 4; const char* Snames = {&quot;Spring&quot;,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru