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

Программа case - C++

Восстановить пароль Регистрация
 
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
22.03.2013, 01:43     Программа case #1
Здравствуйте! У меня есть следующая задача: "В китайском гороскопе года носят следующие названия: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, петух, собака, свинья. Учитывая, что 1996 - год крысы, написать программу, определяющую название года по его номеру."
Оригинал:
Кликните здесь для просмотра всего текста
"У китайському гороскопі роки носять такі назви: щур, корова, тигр, заєць, дракон, змія, кінь, вівця, мавпа, півень, собака, свиня. Враховуючи, що 1996 – рік щура, написати програму, що визначає назву року за його номером."

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void main()
{
int y;
printf("Введите год от 1996 до 2008");
scanf("%y", &y);
if ((y<1999) or (y>2008))
printf ("Вы ввели неверное значение!");
else
switch (y){
case '1996': printf("Год крысы!");
case '1997': printf("Год коровы!")
и т.д.
}
getch();
Не хочет понимать, что у, который ввел пользователь, его же и необходимо проверять с цифровыми значениями. Подскажите, пожалуйста, как правильно?

 Комментарий модератора 
Официальным языком форума является русский язык.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.03.2013, 01:47     Программа case #2
Поиск по форуму попробуй, тыщу раз спрашивали уже.
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
22.03.2013, 02:07     Программа case #3
case '1996': printf("Год крысы!"); break;
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
22.03.2013, 02:32  [ТС]     Программа case #4
Kuzia domovenok, а что писать в поиске то?
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
22.03.2013, 02:40     Программа case #5
Не понял вопроса сразу...

Мб не нужно указывать год '1996', а просто оставить числом 1996, ведь y - int
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
22.03.2013, 02:42     Программа case #6
Цитата Сообщение от Toda Посмотреть сообщение
C++
1
scanf("%y", &y);
%y - что за спецификатор?
может %d всё-таки?
Kuzia domovenok
22.03.2013, 02:43
  #7

Не по теме:

действительно, тебе ж лень не позволяет даже вопрос для непосвящённых перевести. Где уж там собрать силы и придумать, что же искать?

Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
22.03.2013, 03:24  [ТС]     Программа case #8
Croessmah, да, ошибся

Добавлено через 8 минут
iNsomNia7, простите пожалуйста, что сразу не смог все правильно истолковать. Спасибо Вам огромное! Получилось так как вы и говорили! Вам +1 спасибо)

Добавлено через 7 минут
Скидываю код рабочей программки.
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
#include <locale.h>
#include <conio.h>
#include <stdio.h>
void main()
    {
        setlocale(0, "rus");
        int y;
        printf("Введите год от 1996 до 2008: ");
        scanf("%d",&y);
        if ((y<1996)|(y>2008))
            printf("Вы ввели неверное значение!");
        else
            switch(y)
                {
            case 1996: printf("Год крысы!"); break;
            case 1997: printf("Год коровы!"); break;
            case 1998: printf("Год тигра!"); break;
            case 1999: printf("Год зайца!"); break;
            case 2000: printf("Год дракона!"); break;
            case 2001: printf("Год змеи!"); break;
            case 2002: printf("Год лошади!"); break;
            case 2003: printf("Год овцы!"); break;
            case 2004: printf("Год обезьяны!"); break;
            case 2005: printf("Год петуха!"); break;
            case 2006: printf("Год собаки!"); break;
            case 2007: printf("Год свиньи!"); break;
                }
        getch;
    }
Однако, быстро закрывается окно ввода.
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
24.03.2013, 11:23     Программа case #9
Чтобы окно не закрывалось быстро, обычно пишу system("pause") перед return
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 11:41     Программа case
Еще ссылки по теме:

C++ CASE
C++ Switch case внутри switch case

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

Или воспользуйтесь поиском по форуму:
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 11:41     Программа case #10
Задание на Русском языке: "В китайском гороскопе года носят следующие названия: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, петух, собака, свинья. Учитывая, что 1996 - год крысы, написать программу, определяющую название года по его номеру."

Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    setlocale(0,""); //русский язык в консоли
    const int N = 12;
    string str[N] ={"Год крысы!", "Год коровы!", "Год тигра!", "Год зайца!", "Год дракона!", "Год змеи!", "Год лошади!", "Год овцы!", "Год обезьяны!", "Год петуха!", "Год собаки!", "Год свиньи!"};
    int year;
    cin >> year;
 
    if(year < 4) {
        return 0;
    }
 
    int year_name = (year - 4) % 12;
    cout << str[year_name];
}
И без всяких switch
Yandex
Объявления
24.03.2013, 11:41     Программа case
Ответ Создать тему
Опции темы

Текущее время: 05:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru