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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
angel5609
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 34
#1

Разветвление - C++

12.02.2012, 14:09. Просмотров 1523. Ответов 9
Метки нет (Все метки)

Я прошу прощение за то, что задача на украинском языке, но в противном случае сама суть задания будет совсем иная.

Ввести вік людини (від 1 до 150) і вивести його разом з наступним словом "рік", "роки" або "роки".

Помогите, пожалуйста, как составить решение! Хотябі так объясните, а на языке с++ я уже сама напишу!
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 14:09     Разветвление
Посмотрите здесь:

разветвление Visual Basic
На разветвление C++
Turbo Pascal Разветвление
QBasic QuickBASIC.Разветвление
Assembler Разветвление
Разветвление C++
Разветвление Assembler
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
12.02.2012, 14:24     Разветвление #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <Windows.h>
int main()
{
    SetConsoleOutputCP(1251);
    int age;
    std::cout << "Введiть рiк людини: ";
    std::cin >> age;
    std::cout << "Рiк людини становить " << age;
 
    if (age%10==1) std::cout << " рiк";
    else if (age%10 ==2 || age%10==3 || age%4==4) std::cout << " роки";
    else std::cout << " рокiв.";
    std::cout << std::endl;
}
если год заканчивается на 1 - то " рiк"
кесли год заканчивается на 2, 3 или 4 - то " роки"
во всех остальных случаях - " рокiв"
Чтобы получить последнюю цифру года - надо получить остаток от деления года на 10.
1%10 = 1 рiк
23%10= 3 роки
149%10 = 9 рокiв
angel5609
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 34
12.02.2012, 21:48  [ТС]     Разветвление #3
Ну а смотрите: если 12, 13, 14, то это "років"...

Добавлено через 5 часов 11 минут
Та и если 11, то это "років"
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
12.02.2012, 22:38     Разветвление #4
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
#include "iostream"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    int age;
    int n;
    cout << "Ведіть вік людини - ";
    cin >> age;
    
    if (age > 10 && age < 15)
    {
        cout << "\nЛюдині " << age << " років.";
        system("pause >> null");
        return 0;
    }
    
 
    n = age % 10;
    
    switch (n)
    {
    case 1:
        cout << "\nЛюдині " << age << " рік.";
        break;
    case 2:
    case 3:
    case 4:
        cout << "\nЛюдині " << age << " роки.";
        break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 0:
        cout << "\nЛюдині " << age << " років.";
        break;
    }
 
    system("pause >> null");
    return 0;
}
angel5609
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 34
13.02.2012, 01:13  [ТС]     Разветвление #5
Цитата Сообщение от Infinity3000 Посмотреть сообщение
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
#include "iostream"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    int age;
    int n;
    cout << "Ведіть вік людини - ";
    cin >> age;
    
    if (age > 10 && age < 15)
    {
        cout << "\nЛюдині " << age << " років.";
        system("pause >> null");
        return 0;
    }
    
 
    n = age % 10;
    
    switch (n)
    {
    case 1:
        cout << "\nЛюдині " << age << " рік.";
        break;
    case 2:
    case 3:
    case 4:
        cout << "\nЛюдині " << age << " роки.";
        break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 0:
        cout << "\nЛюдині " << age << " років.";
        break;
    }
 
    system("pause >> null");
    return 0;
}
А не могли бы Вы, пожалуйста, объяснить для начала "обычным языком" решение!
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,243
Записей в блоге: 3
13.02.2012, 01:31     Разветвление #6
Написал, но передумал, - всё верно
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
13.02.2012, 01:49     Разветвление #7
Цитата Сообщение от IGPIGP Посмотреть сообщение
Написал, но передумал,
Следил, за Вашими мыслями)))))


Цитата Сообщение от angel5609 Посмотреть сообщение
А не могли бы Вы, пожалуйста, объяснить для начала "обычным языком"
решение!

Вам уважаемый denys_l, все обьяснил!

Цитата Сообщение от denys_l Посмотреть сообщение
если год заканчивается на 1 - то " рiк"
кесли год заканчивается на 2, 3 или 4 - то " роки"
во всех остальных случаях (0, 5, 6, 7, 8, 9)- " рокiв"
Чтобы получить последнюю цифру года - надо получить остаток от деления года на 10.
1%10 = 1 рiк
23%10= 3 роки
149%10 = 9 рокiв
Только все реализовано с помощью оператора switch!

По поводу вашего замечания

Цитата Сообщение от angel5609 Посмотреть сообщение
Ну а смотрите: если 12, 13, 14, то это "років"...
Вот тут оно описано

C++
1
2
3
4
5
6
if (age > 10 && age < 15)
        {
                cout << "\nЛюдині " << age << " років.";
                system("pause >> null");
                return 0;
        }
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,243
Записей в блоге: 3
13.02.2012, 02:13     Разветвление #8
Цитата Сообщение от angel5609 Посмотреть сообщение
case 0:
В самом конце, и - просмотрел.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
13.02.2012, 13:17     Разветвление #9
Цитата Сообщение от angel5609 Посмотреть сообщение
Ну а смотрите: если 12, 13, 14, то это "років"...

Добавлено через 5 часов 11 минут
Та и если 11, то это "років"
Недосмотрел ))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <Windows.h>
int main()
{
        SetConsoleOutputCP(1251);
        int age;
        std::cout << "Введiть рiк людини: ";
        std::cin >> age;
        std::cout << "Рiк людини становить " << age;
        if ((age%100)>10 && (age%100)<21) std::cout << " рокiв.";
        else if (age%10==1) std::cout << " рiк";
                else if (age%10==2 || age%10==3 || age%10==4) std::cout << " роки";
                        else std::cout << " рокiв.";
        std::cout << std::endl;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2012, 14:04     Разветвление
Еще ссылки по теме:

C++ Builder Разветвление вычислений
не работает разветвление Delphi
Разветвление машин тьюринга
Разветвление 3пин от реобаса
Программа на разветвление Delphi

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,243
Записей в блоге: 3
13.02.2012, 14:04     Разветвление #10
Цитата Сообщение от denys_l Посмотреть сообщение
Недосмотрел ))
Жить, с задачей внутри == счастье?мука:судьба;
Как только сам понял, зачем 150 лет (у нас столько не живут) - зашёл посмотреть.
И опять - всё правильно.
I все ж таки, - "Слава братнiм народам!"
Yandex
Объявления
13.02.2012, 14:04     Разветвление
Ответ Создать тему
Опции темы

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