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

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

Войти
Регистрация
Восстановить пароль
 
ReSSorT
-11 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 31
#1

Помогите завершить алгоритм - C++

25.10.2011, 16:19. Просмотров 686. Ответов 6
Метки нет (Все метки)

Для данного числа n < 100 закончите фразу “На лугу пасется...” одним из возможных продолжений: “n коров”, “n корова”, “n коровы”, правильно склоняя слово “корова”.
int main()
{
int x;
scanf("%d",&x);
if ((x>=5)&&(x<=20)&&(x%10!=1))
{
printf("%d korov",x);
}
if (x%10==1)
{
printf("%d korova",x);
}
if ((x%10>=2)&&(x%10<=4)&&(x%10!=1))
{
printf("%d korovy",x);
}

return 0;
}

она в принципе работает, но не выводит значений на числах больше 20..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2011, 16:19     Помогите завершить алгоритм
Посмотрите здесь:

Помогите завершить код C++
Помогите решить алгоритм C++
C++ помогите составить алгоритм
помогите составить алгоритм C++
C++ Помогите пожлуйста составить последовательный алгоритм к блок схеме!
C++ Помогите исправить алгоритм (есть код)
C++ Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве помогите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hijacker7
19 / 19 / 1
Регистрация: 06.10.2011
Сообщений: 53
25.10.2011, 16:43     Помогите завершить алгоритм #2
Вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main() {
int x;
scanf("%d",&x);
if (((x%10>=5)&&(x%10<=9)) || x%10==0) {
        printf("%d korov",x);
}
else if (x%10==1) {
        printf("%d korova",x);
}
else if ((x%10>=2)&&(x%10<=4)) {
        printf("%d korovy",x);
}
 
return 0;
}
vndtta
77 / 54 / 6
Регистрация: 17.10.2011
Сообщений: 165
Завершенные тесты: 1
25.10.2011, 16:52     Помогите завершить алгоритм #3
Цитата Сообщение от hijacker7 Посмотреть сообщение
Вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main() {
int x;
scanf("%d",&x);
if (((x%10>=5)&&(x%10<=9)) || x%10==0) {
        printf("%d korov",x);
}
else if (x%10==1) {
        printf("%d korova",x);
}
else if ((x%10>=2)&&(x%10<=4)) {
        printf("%d korovy",x);
}
 
return 0;
}
xD
13 подставьте

о я тут проглядел
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
25.10.2011, 17:00     Помогите завершить алгоритм #4
в первое условие можно добавить || x / 10 )

C++
1
if (((x%10>=5)&&(x%10<=9)) || !x%10 || x / 10 == 1)
vndtta
77 / 54 / 6
Регистрация: 17.10.2011
Сообщений: 165
Завершенные тесты: 1
25.10.2011, 17:10     Помогите завершить алгоритм #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(x%10){
 case 1:
  if (x!=11) printf("%d korova",x);
  else printf("%d korov",x);
  break;
 case 2:
 case 3:
 case 4:
  if (x!=12 && x!=13 && x!=14) printf("%d korovi",x);
  else printf("%d korov",x);
  break;
 default:
  printf("%d korov",x);
}
вот это должно работать правильно

Добавлено через 10 минут
Цитата Сообщение от Toshkarik Посмотреть сообщение
в первое условие можно добавить || x / 10 )

C++
1
if (((x%10>=5)&&(x%10<=9)) || !x%10 || x / 10 == 1)
тогда уж удалите (x%10<=9) лишнее условие - всегда выполняется

условие !x%10 тоже неверно, т.к. операция ! приоритетнее %, т.е. если x=10, то !x%10=0
заключите в скобки
hijacker7
19 / 19 / 1
Регистрация: 06.10.2011
Сообщений: 53
25.10.2011, 17:13     Помогите завершить алгоритм #6
Цитата Сообщение от vndtta Посмотреть сообщение
13 подставьте
Да, косяк В первом условии должно быть так:
C
1
2
3
if ((x>=5 && x <=20) || x%10>=5 || x%10==0) {
        printf("%d korov",x);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2011, 17:18     Помогите завершить алгоритм
Еще ссылки по теме:

C++ Алгоритм дешифрования. Всё горит, помогите лузеру
C++ Завершить программу
Помогите алгоритм для char переделать в алгоритм для float C++
Помогите дописать( исправить код) алгоритм C++
Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) C++

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

Или воспользуйтесь поиском по форуму:
ReSSorT
-11 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 31
25.10.2011, 17:18  [ТС]     Помогите завершить алгоритм #7
ох, сейчас попробую совместить все ваши подсказки
всем спасибо.
Yandex
Объявления
25.10.2011, 17:18     Помогите завершить алгоритм
Ответ Создать тему
Опции темы

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