Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
#1

Задача с булевым типом - C++

19.02.2012, 08:10. Просмотров 574. Ответов 9
Метки нет (Все метки)

Здраствуйте! Вот над задачей уже третий день голову ламаю: Имеются три числа А,В,С.Нужно вывести на экран false если больше чем одно из этих чисел четное и true если только одно из этих чисел четное,при этом нельзя использовать ни if,for короче нужно использовать вот такого типа выражение : м==п||и>0 ну и что в таком духе.Одно я знаю точно здесь нужно использовать boolalpha в потоке cout
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 08:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача с булевым типом (C++):

В чем разница между типом функции и типом возвращаемого значения? - C++
Читаю статью https:// code-live. ru/post/cpp-functions/ (ссылку изменил дабы не делать рекламу) Там написано - Любая функция...

Преобразовать массив с типом char в массив с типом int - C++
Что-то не получается у меня найти инфу именно с преобразованием массивов с char в int. Нахожу только преобразование с числами. ...

Ошибка с типом - C++
помогите пожалуйста найти ошибку Не могу скомпилировать программу пишет что проблема с типом float в функции prog3#include <stdio.h> ...

Работа с символьным типом - C++
Код:// ex10_4.cpp #include <iostream> using namespace std; //////////////////////////////////////////////////////////////// struct...

Работа с файловым типом - C++
Выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и...

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

9
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
19.02.2012, 08:52 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int a = 2, b = 5, c = 7;
    cout << boolalpha << (((a % 2 == 0) && (b % 2 == 0)) || ((a % 2 == 0) && (c % 2 == 0)) || ((b % 2 == 0) && (c % 2 == 0))) << endl;
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 09:45 #3
Цитата Сообщение от Dima_c8 Посмотреть сообщение
true если только одно из этих чисел четное
Цитата Сообщение от dimcoder Посмотреть сообщение
int a = 2, b = 5, c = 7;
http://liveworkspace.org/code/18a15d850532e77b66b0c10d7e6f97e2
1
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
19.02.2012, 10:56 #4
soon, задание через слово просто читал

Цитата Сообщение от Dima_c8 Посмотреть сообщение
false если больше чем одно из этих чисел четное и true если только одно из этих чисел четное
По логике можно сократить до
Цитата Сообщение от Dima_c8 Посмотреть сообщение
true если только одно из этих чисел четное
Т.к. ничего не сказано если вообще все нечетные
И тогда:
C++
1
2
bool f = ((a % 2 == 0 && b % 2 != 0 && c % 2 != 0) || (a % 2 != 0 && b % 2 == 0 && c % 2 != 0) || (a % 2 != 0 && b % 2 != 0 && c % 2 == 0));
cout << boolalpha << f << endl;
0
x1Mike7x
218 / 131 / 6
Регистрация: 06.11.2010
Сообщений: 234
19.02.2012, 12:17 #5
Как вариант:
C++
1
cout << boolalpha << ( !( ( a + b + c ) & 1 ) && ( ( a & 1 ) || ( b & 1 ) ) ) << endl;
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 12:42 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
typedef unsigned T_uint;
 
bool func(T_uint a, T_uint b, T_uint c)
{
    return (((a & b) ^ c) & (a | b & 1));
}
 
int main()
{
    for(int i = 0; i < 4; ++i)
        for(int j = i; j < 4; ++j)
            for(int k = j; k < 4; ++k)
                std::cout   <<  "func(" <<  i   <<  ", "
                                        <<  j   <<  ", "
                                        <<  k   <<  ") = "
                                        <<  std::boolalpha
                                        <<  func(i, j, k)
                                        <<  std::endl;
    return 0;
}
out
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func(0, 0, 0) = false
func(0, 0, 1) = false
func(0, 0, 2) = false
func(0, 0, 3) = false
func(0, 1, 1) = true
func(0, 1, 2) = false
func(0, 1, 3) = true
func(0, 2, 2) = false
func(0, 2, 3) = false
func(0, 3, 3) = true
func(1, 1, 1) = false
func(1, 1, 2) = true
func(1, 1, 3) = false
func(1, 2, 2) = false
func(1, 2, 3) = true
func(1, 3, 3) = false
func(2, 2, 2) = false
func(2, 2, 3) = false
func(2, 3, 3) = true
func(3, 3, 3) = false
0
Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
19.02.2012, 16:00  [ТС] #7
Люди я вот сматрю на вашы ответы и не могу понять что такое & я привык думать что это взятие адреса и ^ первый раз вижу,слышу :
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.02.2012, 16:03 #8
Dima_c8, битовые операции почитайте.
0
Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
19.02.2012, 16:07  [ТС] #9
Та вот только что в яндексе пытался найти и ничего ни нашол
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 16:08 #10
Wiki
0
19.02.2012, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 16:08
Привет! Вот еще темы с ответами:

Ошибка с типом char - C++
При запуске выдает ошибки связанные с char. На другой версии visual все работало сразу. Не понимаю как исправить их. Ошибки выделены в...

Функция с типом bool - C++
Добрый день! Есть функция main в которой надо вызвать другую функцию ( bool Simple с переменной int ), которая выводит является ли...

Метод за типом класса - C++
Объясните вот эту строку: dist3 = dist1.add_dist(dist2); и эту: Distance Distance::add_dist(Distance d2)

Операции с типом double - C++
double h=0.005; double T=0.2; double tN=0.3; int Nt=(tN-T)/h; cout&lt;&lt;&quot;Nt &quot;&lt;&lt;Nt&lt;&lt;endl; На экран выводится 19, при h=0.0005...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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