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

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

Войти
Регистрация
Восстановить пароль
 
 
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
#1

Оператор switch - C++

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

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

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

Оператор switch - C++
Возникла проблема. Не хочет высчитываться "v". Что не так? #include <iostream.h> #include <math.h> main () { int k; double...

оператор switch - C++
КАк сделать чтобы при выборе неправильного ответа во втрой switch программа не в ходила int main(){ char v1; cout <<"Pervui...

Оператор switch и while - C++
Для целого числа к от 1 до 99 напечатать фразу «Мне к лет», учитывая при этом, что при некоторых значениях к слово «лет» надо заменить...

оператор Switch???? - C++
Люди добрые помогите что здесь не так не пойму #include<conio.h> #include<stdio.h> #include<iostream> using namespace std; ...

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

Оператор switch - C++
Сделать с помощью оператора switch: a*pow(x+7)-b когда x<5 && b!=0; (x-c*d)/a*x когда x>5 && b==0; x/c в других случаях. ...

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

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

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

Очень сложная задача! Сходу в ней не разобраться.
Федор-Липецк
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
17.10.2011, 19:58 #6
Э.. а может D-1? а выбирать, какое это число? либо 1, 30, 31 и 28? и соответственно какой месяц, и какой перед ним месяц
Сыроежка
Заблокирован
17.10.2011, 20:05 #7
Цитата Сообщение от Федор-Липецк Посмотреть сообщение
Э.. а может D-1? а выбирать, какое это число? либо 1, 30, 31 и 28? и соответственно какой месяц, и какой перед ним месяц
А какое значение имеет 31 это число или 30? Все равно вычитаем единицу. Проблема как раз состоит для числа, равномк первому числу месяца.
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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Сыроежка
Заблокирован
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?!
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 20:31  [ТС] #10
Цитата Сообщение от Сыроежка Посмотреть сообщение
Почему d кладете равным 28?!
2-ой месяц, февраль, 28 дней (по условию год невисокосный)
Сыроежка
Заблокирован
17.10.2011, 20:46 #11
Цитата Сообщение от Elena))) Посмотреть сообщение
2-ой месяц, февраль, 28 дней (по условию год невисокосный)
Но вы же должны ввести произвольную дату, или я не так понял? То есть пользователь вводит произвольную дату (произвольный день и месяц), а вы, почему-то, меняете введенный им день на 28.
Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 48
17.10.2011, 20:58  [ТС] #12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Но вы же должны ввести произвольную дату, или я не так понял? То есть пользователь вводит произвольную дату (произвольный день и месяц), а вы, почему-то, меняете введенный им день на 28.
нет, так день(в смысле введенная произвольная дата) на 28 меняться не будет, я же не присваиваю... ну надо же как-то показать, сколько дней в месяце...
Сыроежка
Заблокирован
17.10.2011, 21:04 #13
Я посмотрел внимательно, так вы там вообще даже не присваиваете, а сравниваете.

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

Cи++. Оператор switch. - C++
У меня такой вопрос. Есть задача: с 1 января 1990 года по некоторый день прошло n месяцев, определить название месяца текущего. Ну как...

Оператор switch - C++
целое число в диапазоне 0 – 9. Вывести строку — название соответствующей цифры на английском языке (0 — &quot;zero&quot;, 1 — &quot;one&quot;, 2 — &quot;two&quot;, ...)....

Оператор switch C++ - C++
Помогите с кодом, пожалуйста. На скрине задание.

Оператор switch C++ - C++
Вместо вывода на экран отрицательных значений, работает default. Так же при вводе двухзначного числа выводит первую цифру этого же числа....


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

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

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