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

Определить окончание существительного в зависимости от введенного количества - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Seriks
7 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 124
30.10.2012, 21:09     Определить окончание существительного в зависимости от введенного количества #1
Доброго времени суток. Прошу небольшей помощи с вашей стороны. Вот в чем суть
Задача: Для натурального числа К напечатать фразу "мы нашли К грибов в лесу", согласовав окончание слова "гриб" с числом К.
Ну как я понял окончание зависит от последней цифры 0-9 (0,5,6,7,8,9 - "грибов", 1 - гриб, 2,3,4 - гриба)
Теперь по сути, как записать что бы печаталась фраза "мы нашли К грибов в лесу" что б на месте К была та цифра которая вводится с клавиатуры + верное окончание (т.е сканировалось не все число , а только его последняя цифра)
Надеюсь на вашу помощь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 21:09     Определить окончание существительного в зависимости от введенного количества
Посмотрите здесь:

решить уравнение в зависимости от введенного Х (if else) C++
C++ Вывести на экран слово «год», «года» или «лет» в зависимости от введенного возраста
В зависимости от введенного числа изменить окончание у слова C++
оператор switch (в зависимости от введенного значения, сообщить номер декады) C++
C++ Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 21:16     Определить окончание существительного в зависимости от введенного количества #2
Используй switch, case.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.10.2012, 21:17     Определить окончание существительного в зависимости от введенного количества #3
Последняя цифра числа: a%10, где a - число.
Seriks
7 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 124
30.10.2012, 21:27  [ТС]     Определить окончание существительного в зависимости от введенного количества #4
Я понимаю что конечно через свитч и кейс)

Добавлено через 26 секунд
а как записать это в case? что б оно выбирало вариант окончания?..
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.10.2012, 21:51     Определить окончание существительного в зависимости от введенного количества #5
Типа такого:
C++
1
2
3
4
5
6
7
8
9
10
11
...
 switch(k%10)
 {
  case 0: case 5: case 6: case 7: case 8: case 9: std::cout<<"ov";
  break;
  case 1: cout<<"b";
  break;
  case 2: case 3: case 4: cout<<"a";
  break;
 }
...
Но если ввести, например, 313, то выйдет-то "гриба".
Seriks
7 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 124
30.10.2012, 22:09  [ТС]     Определить окончание существительного в зависимости от введенного количества #6
Эмм.. спасибо, только вопрос. Фразу про грибы писать перед свитч? и как там правильно его сдлеать...
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.10.2012, 22:23     Определить окончание существительного в зависимости от введенного количества #7
Да, перед:
C++
1
std::cout<<"Мы нашли "<<k;
и после свитча:
C++
1
std::cout<<" в лесу";
Seriks
7 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 124
30.10.2012, 23:04  [ТС]     Определить окончание существительного в зависимости от введенного количества #8
Возникла небольшая проблема при выполнении задачи: Задача: Для натурального числа К напечатать фразу "мы нашли К грибов в лесу", согласовав окончание слова "гриб" с числом К.
При запуске возникает ошибка error C2065: 'cout' : undeclared identifier . Хотя я включил библиотеки.. даже 2 для каут.. Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <iostream>
 
int main()
{
  char k;
 std::cout<<"Мы нашли "<<k;
 switch(k%10)
 {
  case 0: case 5: case 6: case 7: case 8: case 9: std::cout<<"грибов";
  break;
  case 1: cout<<"гриб";
  break;
  case 2: case 3: case 4: cout<<"грибa";
  break;
 }
 std::cout<<" в лесу";
  _getch () ;
 return 0;   
}
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
30.10.2012, 23:07     Определить окончание существительного в зависимости от введенного количества #9
C++
1
2
using namespace std; объяви до мейна 
тогда не надо будет каждый раз std::cout и т.д писать и гетч убери
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 23:16     Определить окончание существительного в зависимости от введенного количества #10
в 14 строке std::cout
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
30.10.2012, 23:16     Определить окончание существительного в зависимости от введенного количества #11
вот так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 using namespace std;
int main()
{
    setlocale(LC_ALL,"rus");
  char k;
  cout<<"введите к: ";
  cin>>k;
   cout<<"Мы нашли "<<k;
 switch(k%10)
 {
  case 0: case 5: case 6: case 7: case 8: case 9: cout<<"грибов";
  break;
  case 1: cout<<"гриб";
  break;
  case 2: case 3: case 4: cout<<"грибa";
  break;
 }
 
 cout<<" в лесу";
 return 0;   
}
lopata
5 / 5 / 0
Регистрация: 09.12.2009
Сообщений: 42
31.10.2012, 02:41     Определить окончание существительного в зависимости от введенного количества #12
Можешь попробывать такой вариант.
Окончание определяется в цикле, делем его на 10 пока не получим остаток от деления меньше 10.
Дальше думаю понятно.

Добавлено через 17 минут
проверіла - работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
    int k, d, ost;
    string str;
    cin >>k;
    
     while (k >= 10)
    { k= k % 10;
    
    }
    d = k;
    
    switch (d)
{
case 0 :case 5:case 6:case 7:case 8:case 9: str = "gribov";break;
case 1: str = "grib";break;
case 2:case 3: case 4: str = "griba";break;
}
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 03:37     Определить окончание существительного в зависимости от введенного количества #13
Цитата Сообщение от lopata Посмотреть сообщение
while (k >= 10)
* * { k= k % 10;
}
Достаточно d = k % 10;
Переменную k лучше не менять, ведь в конце ее нужно выводить на печать
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
31.10.2012, 10:29     Определить окончание существительного в зависимости от введенного количества #14
Нужно еще корректно обработать число грибов более 10, но менее 20. Иначе получится
12
My nashli 12 griba v lesu.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 11:30     Определить окончание существительного в зависимости от введенного количества
Еще ссылки по теме:

C++ В зависимости от введенного числа определить его тип и провести дальнейшие действия с ним
C++ Подобрать окончание слова в зависимости от числительного, его описывающего
C++ Вывести приветствие в зависимости от введенного времени

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,978
31.10.2012, 11:30     Определить окончание существительного в зависимости от введенного количества #15
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 static char *nokm[]={"", "а","ов" };
 
sklon(long dd)  /* Определение склонения числа */
{  int n,r;
 
    r = 2;
    n = dd % 100;
    if (n>4 && n<20) return(r);
    n = n % 10;
    if      (n==1)       r=0;
    else if (n>1 && n<5) r=1;
    return(r);
}
/**********/
  r = sklon(Kol);
  printf("Мы нашли %d гриб%s", Kol, nokm[r]);
Может вам еще и Kol словами написать?
А какой максимум? Миллиарда хватит?
Yandex
Объявления
31.10.2012, 11:30     Определить окончание существительного в зависимости от введенного количества
Ответ Создать тему
Опции темы

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