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

выдает неправильный ответ - C++

Восстановить пароль Регистрация
 
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 15:31     выдает неправильный ответ #1
задание такое:Определить ближайшее НЕЧЕТНОЕ ЧИСЛО меньше заданного числа N, которое делится на 15 с остатком 6.
Ввожу число 40 а выдает 36.

#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int N,A;
printf("vvedite N");
scanf ("%d", &N);
if (N<=15+6)
printf("chislo N slishkom malo\n");
else{
A=((N-6)/15)*15+6;
printf("resultat %d", A);
}
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExcellencE
20 / 20 / 2
Регистрация: 22.08.2011
Сообщений: 79
31.10.2012, 16:28     выдает неправильный ответ #2
Потому что вы не проверяете полученный ответ на четность/нечетность а нужно бы проверить и в случае четности выдать ответ по несколько отличной формуле
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 16:30  [ТС]     выдает неправильный ответ #3
ExcellencE,а не могли бы вы в коде это показать мне?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.10.2012, 16:35     выдает неправильный ответ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    int value;
    cout << "Введите число: ";
    cin >> value;
    int a = 6;
    for (int i = value - 1; ; --i)
    if ((i % 2) && ((i % 15) == a)) {
        cout << i << " первое ближайшее ";
        break;
    }
 
    return 0;
}
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 16:39  [ТС]     выдает неправильный ответ #5
xtorne21st,мне нужен именно такой код который я написал,и там исправить ошибку,если вас это не затруднит помогите?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.10.2012, 16:43     выдает неправильный ответ #6
для с соответственно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
    int value;
    printf("Введите число: ");
    scanf ("%d", &value);
    int a = 6;
    int i = value - 1;
    for ( ; ;--i)
    if ((i % 2) && ((i % 15) == a)) {
        printf("%d - первое билдаёшее.\n", i);
        break;
    }
 
    return 0;
}
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 16:47     выдает неправильный ответ #7
A=((N-6)/15)*15+6;
То, что я выделил, надо проверять на четность.
Если оно нечетно, то ваша формула верна
Если четно, то его надо уменьшить на 1
т.е. A=((N-6)/15 - 1)*15+6;
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.10.2012, 16:52     выдает неправильный ответ #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
// #include <conio.h>
void main()
{
    int N,A,i;
    printf("vvedite N");
    scanf ("%d", &N);
    if (N<=15+6)
    printf("chislo N slishkom malo\n");
    else{
    A=6;
    i = N - 1;
    while (--i)
        if ((i % 2) && ((i % 15) == A)) {
        printf("resultat %d", i);
        break;
        }
    }
    //  getch();
}
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 16:52  [ТС]     выдает неправильный ответ #9
I.M.,сделал как вы сказали,теперь при 60 выдает четное,а мне надо не четное.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 16:57     выдает неправильный ответ #10
Sashok 93 rus, не знаю, что вы изменили.
Считаем для 60
(N-6)/15 это (60-6)/15 = 3 (берется только целая часть)
3 - нечетное, значит работает ваша первоначальная формула
т.е. 3*15 + 6 = 51
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 17:08  [ТС]     выдает неправильный ответ #11
Что то вообще не могу понять,I.M могли бы в коде написать?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 17:14     выдает неправильный ответ #12
C++
1
2
3
A = (N-6)/15;
if (A%2 == 0)A--;
A = A*15+6;
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.10.2012, 17:15     выдает неправильный ответ #13
C++
1
   A = (((buf = (N - 6) / 15) & 1) ? buf : (buf - 1)) * 15 + 6;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 17:20     выдает неправильный ответ
Еще ссылки по теме:

Неправильно выдает ответ при некоторых числах, например -2,4.2 C++
C++ Программа для подсчета калорий выдает неправильный результат
C++ Машина Тьюринга. Выводит неправильный ответ

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

Или воспользуйтесь поиском по форуму:
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 17:20  [ТС]     выдает неправильный ответ #14
Всем большое спасибо что помогли!!!
Yandex
Объявления
31.10.2012, 17:20     выдает неправильный ответ
Ответ Создать тему
Опции темы

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