Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
#1

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

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

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

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

По номеру месяца выдать название следующего за ним месяца
Написать программу, которая по номеру месяца выдает название следующего за ним ...

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

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

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

14
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
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 / 7
Регистрация: 12.12.2014
Сообщений: 123
09.04.2015, 13:43 #3
Можно еще дописать:
C++
1
2
if (n < 0 || n > 12)
    cout << "Неверный месяц";
0
MuslimPalit
30 / 6 / 9
Регистрация: 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
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
09.04.2015, 18:06 #5
Твой вариант не оптимален с точки зрения количества проверок.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
09.04.2015, 19:35 #6
char m;
case '11'

думаешь выдасть январь?)
0
MuslimPalit
30 / 6 / 9
Регистрация: 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
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
09.04.2015, 21:09 #8
Что не понятного? Массив названий, а индекс соответственно будет номером месяца только с нумерацией от нуля.
0
Nishen
461 / 285 / 154
Регистрация: 26.02.2015
Сообщений: 1,338
Завершенные тесты: 2
09.04.2015, 21:17 #9
nmcf, вообще твой вариант очень изящен.
MuslimPalit, там все просто. mm - это по сути - массив массивов или массив строк. Индексация массива начинается с нуля, а месяца нумеруются с единицы, поэтому когда ты введешь 2, то попадешь в третью ячейку массива mm, где будет лежать "март". Все, как надо тебе.

Добавлено через 46 секунд
Цитата Сообщение от nmcf Посмотреть сообщение
Твой вариант не оптимален с точки зрения количества проверок.
И количества беспорядка в коде. Убого как-то выглядит.
0
MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
09.04.2015, 21:35  [ТС] #10
Nishen, а почему месяца с единицы?
0
Nishen
461 / 285 / 154
Регистрация: 26.02.2015
Сообщений: 1,338
Завершенные тесты: 2
09.04.2015, 21:44 #11
MuslimPalit, а шут бы его знал, почему в повседневной жизни счет с единицы начинают.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
09.04.2015, 22:05 #12
Лучший ответ Сообщение было отмечено MuslimPalit как решение

Решение

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 / 9
Регистрация: 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 / 11
Регистрация: 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

Вывести название месяца по его номеру
#include &lt;iostream&gt; using namespace std; void main() { setlocale(LC_ALL,...

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

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


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

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

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