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

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

Войти
Регистрация
Восстановить пароль
 
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
#1

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

31.10.2012, 15:31. Просмотров 494. Ответов 13
Метки нет (Все метки)

задание такое:Определить ближайшее НЕЧЕТНОЕ ЧИСЛО меньше заданного числа 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 15:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос выдает неправильный ответ (C++):

Машина Тьюринга. Выводит неправильный ответ - C++
Пишу машину Тьюринга для разных команд, в конце выводит неправильный результат, что не так? Список команд: 0q1-&gt;0q1R 1q1-&gt;0q2R ...

Неправильно считается выражение со степенью и выходит неправильный ответ - C++
Здравствуйте. Пожалуйста, подскажите, где ошибка в программе. Неправильно считается выражение со степенью и выходит неправильный ответ. ...

Функция, вычисляющая сумму ряда (выдается неправильный ответ) - C++
Сделать в виде функции S=\sum_{k=1}^{k}(-2*k)\frac{k+1}{x} Не пойму в чём ошибка ответ явно не правильный выдаёт. #include...

Сервер выдаёт неправильный ответ, хотя, вроде, всё работает - C++
Дана задача: №1 Геннадию интересно, сможет ли слон с поля x1, y1 побить пешку x2, y2 за неограниченное количество ходов. ...

Сервер выдаёт неправильный ответ, хотя, вроде, всё работает - C++
Дана задача: №2 Друзья Саша и Паша живут на одной улице. Как то раз они договорились порешать задачи Открытой Московской...

Поиск первого вхождения шаблона в текст (почему выдается неправильный ответ?) - C++
задача: Напишите функцию поиска первого вхождения шаблона в текст. В качестве первого параметра функция принимает текст (C-style строка),...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
интересующийся
304 / 275 / 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
интересующийся
304 / 275 / 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.
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
интересующийся
304 / 275 / 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.
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.
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++
4225 / 2199 / 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;
Sashok 93 rus
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 35
31.10.2012, 17:20  [ТС] #14
Всем большое спасибо что помогли!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 17:20
Привет! Вот еще темы с ответами:

Метод Ньютона (касательных), программа выдает неправильный результат - C++
Здравствуйте. Проблема в том, что с моей функцией программа выдает неверный результат(хотя если написать функцию, например x*x-2, то все...

Программа для подсчета калорий выдает неправильный результат - C++
Здравствуйте. Недавно начал изучать c++. Написал простую программу для подсчета калорий. Она выдаёт неправильный результат. При вводе...

выдает ложный ответ - C++
ввожу числа: 60.0 4.0 1.0 2.0 4.0 а результат выводит не правильный помогите Код:

Компилятор выдает странный ответ - C++
#include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Введи 2 числа&quot; &lt;&lt; std::endl; int x = 0, y = 0; std::cin &gt;&gt; x &gt;&gt; y; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.10.2012, 17:20
Ответ Создать тему
Опции темы

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