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

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

Восстановить пароль Регистрация
 
ReSSorT
-11 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 31
25.10.2011, 16:19     Помогите завершить алгоритм #1
Для данного числа 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++ Помогите завершить задачу на С пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
66 / 43 / 5
Регистрация: 17.10.2011
Сообщений: 146
Завершенные тесты: 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
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
25.10.2011, 17:00     Помогите завершить алгоритм #4
в первое условие можно добавить || x / 10 )

C++
1
if (((x%10>=5)&&(x%10<=9)) || !x%10 || x / 10 == 1)
vndtta
66 / 43 / 5
Регистрация: 17.10.2011
Сообщений: 146
Завершенные тесты: 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++
Помогите дописать( исправить код) алгоритм C++

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

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

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