dot|exe
написал 8 января 2008 года в 06:22 (1060 просмотров)
Ведет себя
неопределенно; открыл 2 темы в форуме, оставил 3 комментария на сайте.
вот кусочек кода
…
//(1)
if (dig==0)
{
if (lcdval!=0)
LCD->display(lcdval*mul);
}
//(2)
if (dig==16)
{
if (lcdval!=0)
LCD->display(lcdval*(mul*mul));
}
…
Собственно, при (dig=0, lcdval=0) всё нормально, то есть условия не выполняются, но вот стоит переменной dig присвоить значение 16 (при lcdval==0), второе условие выполняется!
P.S. пишу в KDevelope C/C++ for KDE.
lcdval тип double
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Где-то в другом месте у тебя ошибка. Вот я пробую, все номально
#include using namespace std; class lcd{ public: void display(double whatever){ cout << "Whatever is " << whatever << endl; } }; int main(){ double lcdval, mul=1; int dig; lcd *LCD = new lcd; cout << "Input dig="; cin >> dig; cout << "Input lcdval="; cin >> lcdval; //(1) if (dig==0) { if (lcdval!=0) LCD->display(lcdval*mul); else cout << "Condition 1 is false\n"; } //(2) if (dig==16) { if (lcdval!=0) LCD->display(lcdval*(mul*mul)); else cout << "condition 2 is false\n"; } return 0; };double нельзя сравнивать с помощью ==. Вот ссылочка в тему http://www.thescripts.com/forum/thread129927.html
Спасибо…пока писал ответ, понял где косяк)