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

Дать для заданного числа наименования «год», «года», или «лет» - C++

Восстановить пароль Регистрация
 
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
12.03.2014, 10:46     Дать для заданного числа наименования «год», «года», или «лет» #1
Помогите пожалуйста. Так и не понимаю я этот do while. Нужно решить задачку именно им:
Дано натуральное число n(n<=100), определяющая возраст человека в годах. Дать для этого числа наименования «год»,
«года», или «лет», например: 1 год, 43 года, 45 лет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 10:46     Дать для заданного числа наименования «год», «года», или «лет»
Посмотрите здесь:

C++ Вывести на экран слово «год», «года» или «лет» в зависимости от введенного возраста
Для указанного года распечатать все числа, попадающие на воскресенье C++
C++ Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если
C++ Задача со Switch (Для целого числа k от 1 до 99 напечатать фразу "мне k лет»)
C++ Проверка для заданного года, является ли он високосным
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13970 / 8801 / 1226
Регистрация: 24.12.2010
Сообщений: 15,944
12.03.2014, 10:52     Дать для заданного числа наименования «год», «года», или «лет» #2
C++
1
2
3
4
5
6
char *p;
e = n%10;
d = n/10;
if (d!=1 && e==1) p = "год";
else if (d!=1 && (e==2 || e==3 && e==4) p = "года";
else p = "лет";
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 10:53     Дать для заданного числа наименования «год», «года», или «лет» #3
если число больше 20, то
если последняя цифра 1 - "год", 2,3,4 - "года", 5-0 "лет"
числа 5-20 "лет"
до 5 - должно быть понятно

зачем тут do-while, не совсем понятно. Может, чтобы уменьшить число вычитая по 10...

// Пока писал появился другой ответ - можно удалить
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
12.03.2014, 10:54  [ТС]     Дать для заданного числа наименования «год», «года», или «лет» #4
через if я это решал уже, мне через do while нужно
Байт
 Аватар для Байт
13970 / 8801 / 1226
Регистрация: 24.12.2010
Сообщений: 15,944
12.03.2014, 10:55     Дать для заданного числа наименования «год», «года», или «лет» #5
Цитата Сообщение от saden Посмотреть сообщение
зачем тут do-while, не совсем понятно
Я тоже не понял. Может быть
C++
1
2
3
4
5
n =1;
do {
  ...
  n++;
} while (n<=100);
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
12.03.2014, 10:57  [ТС]     Дать для заданного числа наименования «год», «года», или «лет» #6
do while тут для того что бы он выводил сообщение если число более 100, я сделал, но не работает почему то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//---------------------------------------------------------------------------
#include <math.h>
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int main()
{
    int n,a;
    cout<<"Vvedite 4islo: ";
 
        do  {
        cin>>n;
        if (n>100) {
        cout << "4islo ne mogit bit bolshe 100"<<endl;}
        }
    while (n<=100);{
    a=n+10;
    cout<<"Otvet: "<<a<<endl;    }
system("pause");
}
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 11:00     Дать для заданного числа наименования «год», «года», или «лет» #7
единственное, что мне приходит в голову, это
C++
1
do n:=n-10; while(n>10);
останется одна цифра, по которой можно принять решение.
только надо отдельно обработать числа 10-20
Байт
 Аватар для Байт
13970 / 8801 / 1226
Регистрация: 24.12.2010
Сообщений: 15,944
12.03.2014, 11:10     Дать для заданного числа наименования «год», «года», или «лет» #8
twix_uk, while (n > 100);
Ввод продолжается, пока вводятся недопустимые значения
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
12.03.2014, 11:12  [ТС]     Дать для заданного числа наименования «год», «года», или «лет» #9
Сделал вот:
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 <math.h>
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int main()
{
    int e,d,n;
    char *p;
    //cout<< "Pogramma proverayet yavlyaetsya li 4islo stepenu 3"<<endl;
    cout<<"Vvedite 4islo: ";
 
        do  {
        cin>>n;
        if (n>100) {
        cout << "4islo ne mogit bit bolshe 100"<<endl;}
        }
    while (n>=100);{
    e = n%10;
    d = n/10;
    if (d!=1 && e==1) p = "god";
    else if (d!=1 && e==2 || e==3 && e==4) p = "goda";
    else p = "let";
 
    cout<<"Otvet: "<<n<<" "<<p<<endl;    }
system("pause");
}
Но на 23 он вывел мне "лет"
Байт
 Аватар для Байт
13970 / 8801 / 1226
Регистрация: 24.12.2010
Сообщений: 15,944
12.03.2014, 11:16     Дать для заданного числа наименования «год», «года», или «лет» #10
Цитата Сообщение от twix_uk Посмотреть сообщение
Но на 23 он вывел мне "лет"
Извини, моя ошибочка. Строчка 24
C++
1
else if (d!=1 && (e==2 || e==3 || e==4)) p = "goda";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 11:18     Дать для заданного числа наименования «год», «года», или «лет»
Еще ссылки по теме:

C++ Вывод true или false в зависимости от заданного числа
C++ Определить номер дня недели для заданного номера дня года
Составить программу которая при введеном количестве лет выдает сообщени вам n лет,вам n год или года C++

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

Или воспользуйтесь поиском по форуму:
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
12.03.2014, 11:18  [ТС]     Дать для заданного числа наименования «год», «года», или «лет» #11
Спасибо)
Yandex
Объявления
12.03.2014, 11:18     Дать для заданного числа наименования «год», «года», или «лет»
Ответ Создать тему
Опции темы

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