Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2019, 18:20   #1
Clown_User
Новичок
Джуниор
 
Регистрация: 05.01.2019
Сообщений: 1
По умолчанию Что не так ?)

В "Вложениях" вопрос задачи , мое решение и пару тестов , которые поставили меня в тупик help pls )_D
Изображения
Тип файла: png Answer.png (5.4 Кб, 72 просмотров)
Тип файла: jpg Qearch_1.jpg (70.2 Кб, 137 просмотров)
Тип файла: jpg Qearch_2.jpg (63.9 Кб, 123 просмотров)
Тип файла: jpg Qearch_3.jpg (62.4 Кб, 153 просмотров)
Clown_User вне форума Ответить с цитированием
Старый 05.01.2019, 19:14   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Начать с того, что первое условие не верное. Например A < С < 0, а B>0. И на закус - так вещественные на равенство не проверяют. Если к нулю 10 раз прибавить 0.1 в двоичном виде, то результат не будет 1. Хотя бы потому, что 0.1 в двоичном виде бесконечная периодичная двоичная дробь, а в компьютере никакой бесконечности нет и 0.1 уже представляется с погрешностью. Можно проверять с учетом погрешности Y-z<=x<=Y+z, где z точность, например z=0.0001. Можно округлять до необходимой точности и в строку и сравнивать строки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.01.2019 в 19:23.
Аватар вне форума Ответить с цитированием
Старый 05.01.2019, 19:24   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Clown_User Посмотреть сообщение
Что не так ?)
  1. Вы не знаете, что код и текст из консоли можно копировать
  2. Путаете цифры (digit) и числа (number)
  3. Используете непонятные имена переменных типа check (которое еще и на глагол похоже), да и у чисел у вас вполне конкретные назначения по заданию (и выводу в консоль), а не просто "какие-то два числа непонятно для чего".
  4. Не форматируете нормально код, смешиваете кучу действий в одну строку
  5. В С++ (и С99) не надо объявлять все переменные вначале, лучше делать это максимально близко к использованию + использовать const когда можно
  6. Лучше избегать кучи вложенных if, использовать return из функции и т.п. https://en.wikipedia.org/wiki/Guard_(computer_science)
  7. К предыдущему, выводы "True"/"False" лучше заменить на функцию возвращающую bool и один вывод:
    Код:
    cout << isArithmeticProgressionMember(a, initial, step) ? "Yes" : "No";
  8. Вы не рассказали, что именно вас в тупик-то поставило.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 05.01.2019 в 19:34.
Alex11223 вне форума Ответить с цитированием
Старый 05.01.2019, 19:26   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Если к нулю 10 раз прибавить 0.1 в двоичном виде, то результат не будет 1
видимо это)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Картинка в шапке не двигается, что с style.ss не так?или что? Redass HTML и CSS 7 09.11.2016 17:48
Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? TEIROP Visual C++ 4 08.11.2015 20:19
Что-то не так в программе...не пойму что Karina_Vamp Помощь студентам 5 24.12.2010 21:06
Что не так? Alexcomeback Общие вопросы C/C++ 9 07.04.2009 23:14