Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
MuslimPalit
30 / 6 / 2
Регистрация: 23.03.2015
Сообщений: 508
#1

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

09.04.2015, 12:34. Просмотров 661. Ответов 14
Метки нет (Все метки)

написать программу, которая по номеру месяца выдает название следующего за ним месяца (при m=1 получаем февраль, при m=4 - май)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2015, 12:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести название месяца следующего за текущим (C++):

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

По номеру месяца выдать название следующего за ним месяца - C++
Написать программу, которая по номеру месяца выдает название следующего за ним месяца (при m=1 получаем февраль, 4-май и т.д)

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

При вводе порядкового номера месяца вывести название этого месяца - C++
Написать программу, которая при вводе порядкового номера месяца (1, 2, 3 и тд) выводит название этого месяца. Взять 6 месяцев Нуждаюсь...

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

Вывести название месяца по его номеру - C++
#include <iostream> using namespace std; void main() { setlocale(LC_ALL, "Rus"); int n; cout << "Введите месяц "; cin >>...

14
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,161
09.04.2015, 13:35 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    
char *mm[] = {"январь", "февраль"};
 
unsigned n;
 
cin >> n;
 
if (n == 12) n = 0;
 
cout << mm[n];
    
}
Остальные месяцы допиши.
2
wondermilk
4 / 4 / 3
Регистрация: 12.12.2014
Сообщений: 123
09.04.2015, 13:43 #3
Можно еще дописать:
C++
1
2
if (n < 0 || n > 12)
    cout << "Неверный месяц";
0
MuslimPalit
30 / 6 / 2
Регистрация: 23.03.2015
Сообщений: 508
09.04.2015, 16:56  [ТС] #4
)) вот вы усугубители

Добавлено через 9 минут
можно же через switch
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
  void main
{
  char m;
  switch (m) {
    case '1' : cout << " Февраль\n";
      break;
    case '2' : cout << " Март\n";
      break;
    case '3' : cout << " Апрель\n";
      break;
    case '4' : cout << " Май\n";
      break;
    case '5' : cout << " Июнь\n";
      break;
    case '6' : cout << " Июль\n";
      break;
    case '7' : cout << " Август\n";
      break;
    case '8' : cout << " Сентябрь\n";
      break;
    case '9' : cout << " Октябрь\n";
      break;
    case '10' : cout << " Ноябрь\n";
      break;
    case '11' : cout << " Декабрь\n";
      break;
    case '12' : cout << " Январь\n";
      break;
    }
}
Добавлено через 49 секунд
деловто
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,161
09.04.2015, 18:06 #5
Твой вариант не оптимален с точки зрения количества проверок.
0
daslex
1290 / 534 / 110
Регистрация: 02.08.2011
Сообщений: 2,756
09.04.2015, 19:35 #6
char m;
case '11'

думаешь выдасть январь?)
0
MuslimPalit
30 / 6 / 2
Регистрация: 23.03.2015
Сообщений: 508
09.04.2015, 20:37  [ТС] #7
daslex, я не проверял сейчас сделаю

Добавлено через 1 минуту
daslex, думаю не выдаст)) тупанул на слове январь 12 выдаст. так как в задании надо следующий выводить я бью 11 он декабрь я бью 1 он февраль

Добавлено через 6 минут
daslex, ты оказался прав

Добавлено через 5 минут
daslex, а как это исправить не выходя за рамки switch

Добавлено через 1 минуту
nmcf, nmcf, я не вполне понял твой вариант указатели массивы для меня пока это лес
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,161
09.04.2015, 21:09 #8
Что не понятного? Массив названий, а индекс соответственно будет номером месяца только с нумерацией от нуля.
0
Nishen
466 / 277 / 88
Регистрация: 26.02.2015
Сообщений: 1,307
Завершенные тесты: 2
09.04.2015, 21:17 #9
nmcf, вообще твой вариант очень изящен.
MuslimPalit, там все просто. mm - это по сути - массив массивов или массив строк. Индексация массива начинается с нуля, а месяца нумеруются с единицы, поэтому когда ты введешь 2, то попадешь в третью ячейку массива mm, где будет лежать "март". Все, как надо тебе.

Добавлено через 46 секунд
Цитата Сообщение от nmcf Посмотреть сообщение
Твой вариант не оптимален с точки зрения количества проверок.
И количества беспорядка в коде. Убого как-то выглядит.
0
MuslimPalit
30 / 6 / 2
Регистрация: 23.03.2015
Сообщений: 508
09.04.2015, 21:35  [ТС] #10
Nishen, а почему месяца с единицы?
0
Nishen
466 / 277 / 88
Регистрация: 26.02.2015
Сообщений: 1,307
Завершенные тесты: 2
09.04.2015, 21:44 #11
MuslimPalit, а шут бы его знал, почему в повседневной жизни счет с единицы начинают.
0
daslex
1290 / 534 / 110
Регистрация: 02.08.2011
Сообщений: 2,756
09.04.2015, 22:05 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct Month{
            int kol_os[30];
            int veter[30];
            int temp[30];
        };
 
int main(){
    setlocale(LC_ALL,"");
    //system("cls");
    int m;
 
/* ТВОЕ
    for (int i=0;i<50;i++){
            m=i+1;
 
 while (m>12) m-=12;
 
 
  switch (m) {
    case 1 : cout << " Февраль\n";
      break;
    case 2 : cout << " Март\n";
      break;
    case 3 : cout << " Апрель\n";
      break;
    case 4 : cout << " Май\n";
      break;
    case 5 : cout << " Июнь\n";
      break;
    case 6 : cout << " Июль\n";
      break;
    case 7 : cout << " Август\n";
      break;
    case 8 : cout << " Сентябрь\n";
      break;
    case 9 : cout << " Октябрь\n";
      break;
    case 10 : cout << " Ноябрь\n";
      break;
    case 11 : cout << " Декабрь\n";
      break;
    case 12 : cout << " Январь\n";
      break;
    default:
        cout<<"Нет такого месяца, не было и никогда не будет";
    }
 
    if (m==12) cout<<"============\n";
 
    }
*/
 
 
/*Не твое, но лучше все-таки так*/
    int n=0;
    string Month[]={"Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"};
 
 
    for (int i=0;i<50;i++){
           cout<< i+1<<". "<< Month[(i+1)%12]<<"\n";
           if (!((i+1)%12)) cout<<"=============\n";
    }
}
подправишь под себя, надеюсь справишься.
_______________

char - это символ, а '11' само по себе содержит 2 символа (две единицы), поэтому если использовать char то уже нужен массив, либо вообще не использовать char/ В этой задаче можно спокойно и int обойтись в том месте.

Вывод таков. Как справишься со своим вариантом, начинай вникать в массивы. Без массивов никуда. Твой вариант громоздкий, не эффективный и черезчур избыточен.
1
MuslimPalit
30 / 6 / 2
Регистрация: 23.03.2015
Сообщений: 508
09.04.2015, 22:12  [ТС] #13
Nishen, не в этом дело, ну массив с нуля начинается

Добавлено через 5 минут
daslex, хорошо но непонятно почему 50 в условиях и функция что делает?
0
daslex
09.04.2015, 22:20
  #14

Не по теме:

да просто так эта 50. убери цикл. что мешает? я так смотрел что выводится.
номер месяца может быть и 1000, почему бы и нет. какое у него название?
чтобы увидеть что логика не нарушилась я цикл использовал. тебе он не нужен.

0
maks242
47 / 21 / 7
Регистрация: 01.11.2013
Сообщений: 255
Завершенные тесты: 6
09.04.2015, 22:55 #15
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
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int NumberOfMonth = 0;
    cout << "Введите номер месяца: ";
    cin >> NumberOfMonth;
    const string MonthOfYear[12] = { "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябырь", "Октябырь", "Ноябырь", "Декабырь", };
    switch (NumberOfMonth)
    {
    case 1:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 2:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 3:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 4:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 5:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 6:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 7:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 8:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 9:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 10:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 11:
        cout << MonthOfYear[NumberOfMonth];
        break;
    case 12:
        cout << MonthOfYear[0];
        break;
    default:
        cout << "Error" << endl;
        break;
    }
    _getch();
    return 0;
}
0
09.04.2015, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2015, 22:55
Привет! Вот еще темы с ответами:

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

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

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

По дате, введенной с клавиатуры вывести число, название месяца и год - C++
Задача 4 Напишите программу, которая по дате, введенной с клавиатуры в формате X X. X X. X X выводит число, название месяца и год....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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