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

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

Войти
Регистрация
Восстановить пароль
 
kre-sod
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 16
Записей в блоге: 9
#1

Логическое и - C++

05.04.2014, 22:25. Просмотров 302. Ответов 3
Метки нет (Все метки)

Это ведь && ? Тогда можете объяснить, в чем разница? пояснение после кода (весь привел на всякий случай)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "../../std_lib_facilities.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    vector<string> words;
    string temp;
    string disliked = "Broccoli";
    string dis = "BLEEP";
    cout << "Vvedite slova (Broccoli - nezelatelnoe slovo!):\n";
    while (cin>>temp)
        words.push_back(temp);
    cout << "Kolocestvo slov: " << words.size() << endl;
    sort(words.begin(), words.end());
    for (int i=0; i<words.size(); ++i)
        if (i==0 || words [i-1] != words[i] && words[i] == disliked)
            cout << dis <<'\n';
        else if (i==0 || words[i-1] != words[i] && words[i] != disliked)
            cout << words[i] << '\n';
    system("pause");
    return 0;
}
В чем разница между
C++
1
2
3
4
if (i==0 || words [i-1] != words[i] && words[i] == disliked)
            cout << dis <<'\n';
        else if (i==0 || words[i-1] != words[i] && words[i] != disliked)
            cout << words[i] << '\n';
и
C++
1
2
3
4
5
6
if (i==0 || words [i-1] != words[i])
            if (words[i] == disliked)
            cout << dis <<'\n';
        else if (i==0 || words[i-1] != words[i])
            if (words[i] != disliked)
            cout << words[i] << '\n';
?
Работает только второй вариант. Если делаю первый, то выдает кучу ошибок. И как тогда пользоваться && ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 22:25     Логическое и
Посмотрите здесь:

Логическое выражение - C++
Записать логическое выражение, которое является истинным, когда число N чётное делится на 7, но не делится на 11 и 13 без остатка. ...

Логическое выражение - C++
Здравствуйте. Запишите логическое выражение, которое принимает значение &quot;истина&quot; тогда и только тогда, когда точка с координатами (x, y)...

ЛВ(ЛОГИЧЕСКОЕ ВРОЖЕНИЯ) - C++
Помогите составить ЛВ в схеме if допустим int a; cin&gt;&gt;a; if(6&gt;12) { cout&lt;&lt;&quot;Hello ifloud&quot;; }

Логическое задание на С++ - C++
Помогите пож-та еще с вот такой задачкой:

Вычислить логическое выражение - C++
Помогите написать программу!!!

Записать логическое выражение - C++
Записать логическое выражение, которое принимает значение TRUE, если точка с заданными координатами x и y попадает в заштрихованную...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
05.04.2014, 22:34     Логическое и #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kre-sod Посмотреть сообщение
Работает только второй вариант. Если делаю первый, то выдает кучу ошибок.
вторая запись не идентична первой
посмотри например к чему относится else

Добавлено через 1 минуту
да и скобки расставь
IrineK
Заблокирован
05.04.2014, 22:46     Логическое и #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Приоритет операций

Равно / не равно выполняется раньше, чем логические И / ИЛИ
Поэтому нужны скобки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 02:13     Логическое и
Еще ссылки по теме:

Написать логическое выражение - C++
как написать формулы на с++ формула во вложении Когда же, наконец, Вы запомните П.5.18.Правил Запрещено размещать задания и решения...

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

Логическое условие И и ИЛИ цикла do while - C++
Товарищи, доброго дня! Я что-то не понимаю, почему при вот таком коде, нажимая на 0 или 1 не выйти из программы: ...

Неправильно вычисляется логическое выражение - C++
В этом отрывке программы у меня программа не замечает условие,почему? То есть она выводит не для 1-3,100,200,300,700,1000,1426,а выводит...


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

Или воспользуйтесь поиском по форуму:
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
06.04.2014, 02:13     Логическое и #4
а проще так, мне кажется:
C++
1
2
3
4
5
6
7
if ((i == 0) || (words[i-1] != words[i])){
    if (words[i] == disliked){
    cout << dis << endl;
    } else {
    cout << words[i] << endl;
    }
}
Yandex
Объявления
06.04.2014, 02:13     Логическое и
Ответ Создать тему
Опции темы

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