Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
1

Оператор switch

17.10.2011, 19:39. Просмотров 1047. Ответов 15
Метки нет (Все метки)

Даны два целых числа: D (день) и M (месяц), определяющие правильную дату
невисокосного года. Вывести значения D и M для даты, предшествующей указанной.

Добавлено через 21 час 50 минут
ага... ну почему никто не может помочь???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 19:39
Ответы с готовыми решениями:

Оператор Switch
Нужно помощь с этим оператором может быть где-то направильно написал ??? со...

Оператор switch
Возникла проблема. Не хочет высчитываться "v". Что не так? #include...

оператор Switch????
Люди добрые помогите что здесь не так не пойму #include<conio.h>...

оператор switch
КАк сделать чтобы при выборе неправильного ответа во втрой switch программа не...

оператор switch
Задача весьма проста, необходима для тренировки. Я должен использовать оператор...

15
Vourhey
Почетный модератор
6492 / 2267 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
17.10.2011, 19:41 2
Цитата Сообщение от Elena))) Посмотреть сообщение
ну почему никто не может помочь???
а где, собственно, вопрос-то ваш?
0
Сыроежка
Заблокирован
17.10.2011, 19:42 3
Цитата Сообщение от Elena))) Посмотреть сообщение
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату
невисокосного года. Вывести значения D и M для даты, предшествующей указанной.

Добавлено через 21 час 50 минут
ага... ну почему никто не может помочь???
Все озадачались, как написать этот switch! То ли делать switch по месяцам, то ли по дням!

Например, можно сделать внешний switch по дням, а внутренний по месяцам. А можно, наоборот! То есть довольно сложная задача!
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 19:45  [ТС] 4
Например, можно сделать внешний switch по дням, а внутренний по месяцам. А можно, наоборот! То есть довольно сложная задача!
а если только по месяцам???
0
Сыроежка
Заблокирован
17.10.2011, 19:50 5
Цитата Сообщение от Elena))) Посмотреть сообщение
а если только по месяцам???
Неа, лучше наверное по дням! Нужно проверить всего лишь два дня: первое ли это число месяца или не первое. Если не первое, то просто из дня вычитаем единицу, а месяц остается прежним. А если первое число месяца, то можно открыть второй switch уже по месяцам. Опять-таки проверять, первый это месяц года, или не первый. Если не первый, то опять (уже третий switch!) открываем, то есть проверяем, в месяце 31 день или 30, или 28!

Очень сложная задача! Сходу в ней не разобраться.
0
Федор-Липецк
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
17.10.2011, 19:58 6
Э.. а может D-1? а выбирать, какое это число? либо 1, 30, 31 и 28? и соответственно какой месяц, и какой перед ним месяц
0
Сыроежка
Заблокирован
17.10.2011, 20:05 7
Цитата Сообщение от Федор-Липецк Посмотреть сообщение
Э.. а может D-1? а выбирать, какое это число? либо 1, 30, 31 и 28? и соответственно какой месяц, и какой перед ним месяц
А какое значение имеет 31 это число или 30? Все равно вычитаем единицу. Проблема как раз состоит для числа, равномк первому числу месяца.
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 20:17  [ТС] 8
Цитата Сообщение от Сыроежка Посмотреть сообщение
Неа, лучше наверное по дням!
может здесь с днемя можно че-нить придумать???

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
#include<iostream>
using namespace std;
int main()
{
    setlocale(0,"rus");
    int d, m;
 
cout<<"Введите число: "; cin>>d;
cout<<"Введите месяц: "; cin>>m;
d=d-1;
if (m==2) d==28;
else if (m==1||m==3||m==5||m==7||m==8||m==10||m==12) d==31;
else d==30;
 
if (d<=0||d>31) cout<<"Неверное число!"<<endl;
else {
switch(m)
{
    case 1: cout<<"Предшествующая дата: "<<d<<" января"<<endl; break;
    case 2: cout<<"Предшествующая дата: "<<d<<" февраля"<<endl; break;
    case 3: cout<<"Предшествующая дата: "<<d<<" марта"<<endl; break;
    case 4: cout<<"Предшествующая дата: "<<d<<" апреля"<<endl; break;
    case 5: cout<<"Предшествующая дата: "<<d<<" мая"<<endl; break;
    case 6: cout<<"Предшествующая дата: "<<d<<" июня"<<endl; break;
    case 7: cout<<"Предшествующая дата: "<<d<<" июля"<<endl; break;
    case 8: cout<<"Предшествующая дата: "<<d<<" августа"<<endl; break;
    case 9: cout<<"Предшествующая дата: "<<d<<" сентября"<<endl; break;
    case 10: cout<<"Предшествующая дата: "<<d<<" октября"<<endl; break;
    case 11: cout<<"Предшествующая дата: "<<d<<" ноября"<<endl; break;
    case 12: cout<<"Предшествующая дата: "<<d<<" декабря"<<endl; break;
        default: cout<<"Неверное число!"<<endl;
            
}
}
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Сыроежка
Заблокирован
17.10.2011, 20:25 9
Цитата Сообщение от Elena))) Посмотреть сообщение
может здесь с днемя можно че-нить придумать???

#include<iostream>
using namespace std;
int main()
{
setlocale(0,"rus");
int d, m;

cout<<"Введите число: "; cin>>d;
cout<<"Введите месяц: "; cin>>m;
d=d-1;
if (m==2) d==28;
else if (m==1||m==3||m==5||m==7||m==8||m==10||m==12) d==31;
else d==30;

if (d<=0||d>31) cout<<"Неверное число!"<<endl;
else {
switch(m)
{
case 1: cout<<"Предшествующая дата: "<<d<<" января"<<endl; break;
case 2: cout<<"Предшествующая дата: "<<d<<" февраля"<<endl; break;
case 3: cout<<"Предшествующая дата: "<<d<<" марта"<<endl; break;
case 4: cout<<"Предшествующая дата: "<<d<<" апреля"<<endl; break;
case 5: cout<<"Предшествующая дата: "<<d<<" мая"<<endl; break;
case 6: cout<<"Предшествующая дата: "<<d<<" июня"<<endl; break;
case 7: cout<<"Предшествующая дата: "<<d<<" июля"<<endl; break;
case 8: cout<<"Предшествующая дата: "<<d<<" августа"<<endl; break;
case 9: cout<<"Предшествующая дата: "<<d<<" сентября"<<endl; break;
case 10: cout<<"Предшествующая дата: "<<d<<" октября"<<endl; break;
case 11: cout<<"Предшествующая дата: "<<d<<" ноября"<<endl; break;
case 12: cout<<"Предшествующая дата: "<<d<<" декабря"<<endl; break;
default: cout<<"Неверное число!"<<endl;

}
}
return 0;
}
Я не понял начало вашего кода.

C++
1
2
d=d-1;
if (m==2) d==28;
Почему d кладете равным 28?!
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 20:31  [ТС] 10
Цитата Сообщение от Сыроежка Посмотреть сообщение
Почему d кладете равным 28?!
2-ой месяц, февраль, 28 дней (по условию год невисокосный)
0
Сыроежка
Заблокирован
17.10.2011, 20:46 11
Цитата Сообщение от Elena))) Посмотреть сообщение
2-ой месяц, февраль, 28 дней (по условию год невисокосный)
Но вы же должны ввести произвольную дату, или я не так понял? То есть пользователь вводит произвольную дату (произвольный день и месяц), а вы, почему-то, меняете введенный им день на 28.
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 20:58  [ТС] 12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Но вы же должны ввести произвольную дату, или я не так понял? То есть пользователь вводит произвольную дату (произвольный день и месяц), а вы, почему-то, меняете введенный им день на 28.
нет, так день(в смысле введенная произвольная дата) на 28 меняться не будет, я же не присваиваю... ну надо же как-то показать, сколько дней в месяце...
0
Сыроежка
Заблокирован
17.10.2011, 21:04 13
Я посмотрел внимательно, так вы там вообще даже не присваиваете, а сравниваете.

C++
1
if (m==2) d==28;
То есть я смысла не вижу в этом предложении.
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 21:18  [ТС] 14
Цитата Сообщение от Сыроежка Посмотреть сообщение
Я посмотрел внимательно, так вы там вообще даже не присваиваете, а сравниваете.

C++
1
if (m==2) d==28;
То есть я смысла не вижу в этом предложении.
да, действительно..хах))) я наверное поняла, надо заметить ту часть на
if (d<=0)
{m--;
d=31;}
0
Сыроежка
Заблокирован
17.10.2011, 21:21 15
Цитата Сообщение от Elena))) Посмотреть сообщение
да, действительно..хах))) я наверное поняла, надо заметить ту часть на
if (d<=0)
{m--;
d=31;}
Но это же не switch, а if, не так ли?
0
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 21:39  [ТС] 16
Цитата Сообщение от Сыроежка Посмотреть сообщение
Но это же не switch, а if, не так ли?
так... но хотя бы с днями выполняется... ну не могу додуматься как эти дни со switch записать...
0
17.10.2011, 21:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 21:39

Оператор switch
Оператор switch: 1)Написать программу, где ожидается ввод символа с...

Оператор switch
Зависит ли a) объектный код от порядка меток case и default в данном...

Оператор switch
Дан номер телевизионного канала. Вывести на экран наиболее популярные программы...


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

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

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