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

определение возраста в годах - C++

Восстановить пароль Регистрация
 
KathrineY
 Аватар для KathrineY
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 189
05.03.2013, 23:46     определение возраста в годах #1
объясните мне пожалуйста этот код. я не могу понять как он работает



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
#include <iostream>
#include <clocale>
#include<conio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
        int b = ( 10, 20, 30, 40, 50, 60, 70, 80 );
        int  c;
    cout << "vvedite celoe chislo ";
    cin >> b;
        if (b <= 0) cout << "0 let" << endl;
    else
    {
        c = b % 100;
        if (c >= 10 && c <= 80) cout  << b << " let" << endl;
        else
            switch (b % 10)
            {
                case 1: cout  << b << " god" << endl;
                    break;
                case 2: case 3: case 4:
                    cout  << b << " goda" << endl;
                    break;
                default: cout  << b << " let" << endl;
            }
 
    }
 
        getch();
    return 0;
        }

вот само задание

Дано целое число в диапазоне от 20 до 80, определяющее возраст в годах. Вывести строку – словесное описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 – «двадцать лет», 32 – «тридцать два года», 41 – «сорок один год».
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
06.03.2013, 00:07     определение возраста в годах #2
как-то так
Цитата Сообщение от KathrineY Посмотреть сообщение
объясните мне пожалуйста этот код. я не могу понять как он работает
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
#include <iostream>
#include <clocale>
#include<conio.h>
#include <windows.h>
using namespace std;
int main()
{
int b = ( 10, 20, 30, 40, 50, 60, 70, 80 );
int c;
cout << "vvedite celoe chislo ";
cin >> b;//вводиться число... допустим 102
if (b <= 0) cout << "0 let" << endl;// если число меньще или =0 то выводим число и слово лет
else
{
c = b % 100;//иначе ищем остаток от деления на 100
if (c >= 10 && c <= 80) cout << b << " let" << endl;// если этот остаток между 10 и 80 выводим слово лет
else
switch (b % 10)//иниче передаем в свитч остаток от деления на 10
{
case 1: cout << b << " god" << endl;// если остаток есть 1 то выводим год
break;
case 2: case 3: case 4:// если остаток 2 ли 3 или 4 то выводим года
cout << b << " goda" << endl;
break;
default: cout << b << " let" << endl;// во всех остальных случаях выводим лет
}
}
getch();
return 0;
}
Xfaider
11 / 11 / 1
Регистрация: 27.10.2012
Сообщений: 26
06.03.2013, 00:19     определение возраста в годах #3
Не вижу смысла расписывать данный код, т.к. он все-равно не рабочий, определяет верно только последнее слово.
Вот тебе с комментариями рабочий.
Кликните здесь для просмотра всего текста
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
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "iostream" 
#include "locale.h" 
 
void slovo(int x)
{
    switch (x/10)  //оператор выбора для 1 слова
    { 
    case 2:  
        std::cout<<" Двадцать"; 
        break;
    case 3: 
        std::cout<<" Тридцать"; 
        break;
    case 4: 
        std::cout<<"Сорок"; 
        break;
    case 5: 
        std::cout<<"Пятьдесят"; 
        break;
    case 6: 
        std::cout<<"Шестьдесят"; 
        break;
    case 7: 
        std::cout<<"Семьдесят"; 
        break;
    case 8: 
        std::cout<<"Восемьдесят"; 
        break;
     }
    switch (x%10)  //оператор выбора для 2 слова
    { 
    case 1: 
        std::cout<<" Один"; 
        break;
    case 2: 
        std::cout<<" Два"; 
        break;
    case 3: 
        std::cout<<" Три"; 
        break;
    case 4: 
        std::cout<<" Четыре"; 
        break;
    case 5: 
        std::cout<<" Пять"; 
        break;
    case 6: 
        std::cout<<" Шесть"; 
        break;
    case 7: 
        std::cout<<" Семь"; 
        break;
    case 8: 
        std::cout<<" Восемь"; 
        break;
    case 9: 
        std::cout<<" Девять"; 
        break;
     }
        switch (x%10)      //оператор выбора, для 3 слова
    {
    case 0: case 5: case 6: case 7: case 8: case 9:  //если последняя цифра 0,5-9 программа напишет " Лет"
        std::cout<<" Лет\n"; 
        break;
    case 1:                //если последняя цифра 1 программа напишет " Год"
        std::cout<<" Год\n"; 
        break;
    case 2: case 3: case 4:  //если последняя цифра 2-4 программа напишет " Год"
        std::cout<<" Годa\n"; 
        break;
    }
}
void main()
{
    setlocale(LC_ALL, "rus");   // включение русского языка в консоль
    int x; 
    std::cout<<"Введите целое число в диапазоне от 20 до 80\n";
    std::cin>>x; 
    slovo(x);
    system("pause");    
}
Lodur
Сообщений: n/a
29.05.2013, 13:36     определение возраста в годах #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
#include <iostream>
#include <clocale>
#include<conio.h>
#include <windows.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
int b, c, q;
cout << "Введите ваш возраст = ";
cin >> b;
if (b == 0) cout << "ваш возраст\t"<< b << "\t лет" << endl;
else
{c = b % 100;
q = c%10;
if (c==11||b==12||b==13||b==14) cout << "ваш возраст\t"<<b << "\t let" << endl;
else
{if (q == 1) cout << "ваш возраст\t"<<b << "\t год" << endl;
else
    {if (q>1&&q<=4) cout << "ваш возраст\t"<<b << "\t года" << endl;
else cout << "ваш возраст\t"<<b << "\t лет" << endl;
}
}}
getch();
}
Yandex
Объявления
29.05.2013, 13:36     определение возраста в годах
Ответ Создать тему
Опции темы

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