Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 72
1

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

12.03.2014, 10:46. Просмотров 1019. Ответов 10
Метки нет (Все метки)

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

Определить для числа наименование «год», «лет» или «года»
б) натуральное число m (m &lt;= 100), заданное пользователем, определяет возраст...

Составить программу которая при введеном количестве лет выдает сообщени вам n лет,вам n год или года
Составить программу которая при введеном количестве лет выдает сообщение вам n...

Вывести на экран слово «год», «года» или «лет» в зависимости от введенного возраста
Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим...

Вывести возраст пользователя, используя правильное слово год/года/лет
Вводим число от 1 до 100. В ответ выводится строка типа «Вам 76 лет». Или «Вам...

Для заданного числа N от 1 до 365, определить месяц и день недели в не високосный год.
For a given number n from 1 to 365, determine the month and the day in non-leap...

10
Байт
Эксперт C
18925 / 12143 / 2533
Регистрация: 24.12.2010
Сообщений: 24,721
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 = "лет";
0
saden
183 / 167 / 52
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 10:53 3
если число больше 20, то
если последняя цифра 1 - "год", 2,3,4 - "года", 5-0 "лет"
числа 5-20 "лет"
до 5 - должно быть понятно

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

// Пока писал появился другой ответ - можно удалить
0
twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 72
12.03.2014, 10:54  [ТС] 4
через if я это решал уже, мне через do while нужно
0
Байт
Эксперт C
18925 / 12143 / 2533
Регистрация: 24.12.2010
Сообщений: 24,721
12.03.2014, 10:55 5
Цитата Сообщение от saden Посмотреть сообщение
зачем тут do-while, не совсем понятно
Я тоже не понял. Может быть
C++
1
2
3
4
5
n =1;
do {
  ...
  n++;
} while (n<=100);
0
twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 72
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");
}
0
saden
183 / 167 / 52
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 11:00 7
единственное, что мне приходит в голову, это
C++
1
do n:=n-10; while(n>10);
останется одна цифра, по которой можно принять решение.
только надо отдельно обработать числа 10-20
1
Байт
Эксперт C
18925 / 12143 / 2533
Регистрация: 24.12.2010
Сообщений: 24,721
12.03.2014, 11:10 8
twix_uk, while (n > 100);
Ввод продолжается, пока вводятся недопустимые значения
0
twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 72
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 он вывел мне "лет"
0
Байт
Эксперт C
18925 / 12143 / 2533
Регистрация: 24.12.2010
Сообщений: 24,721
12.03.2014, 11:16 10
Цитата Сообщение от twix_uk Посмотреть сообщение
Но на 23 он вывел мне "лет"
Извини, моя ошибочка. Строчка 24
C++
1
else if (d!=1 && (e==2 || e==3 || e==4)) p = "goda";
1
twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 72
12.03.2014, 11:18  [ТС] 11
Спасибо)
0
12.03.2014, 11:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 11:18

Вывести на экран монитора число с наименованием "год","года", "лет"
Прошу прогу в С++. Дано натуральное число n (n&lt;=100), определяющее в годах...

Добавить к возрасту человека указание "год", "года", "лет"
Дано натуральное число n (n&lt;=100), определяющее возраст человека (в годах)....

Определить являются ли числа из заданного набора равными или все они не меньше заданного
1. Даны n целых чисел. Определить, являются ли эти числа равными или все они не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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