0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 1
1

Не могу найти ошибку в main. Думаю, что то напортачил с указателями. Заранее Спасибо

18.12.2017, 21:43. Показов 914. Ответов 1
Метки нет (Все метки)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 * Для составления цепочек используются разноцветные бусины:
 * темные – синяя (С), зеленая (3) и светлые – желтая (Ж), белая (Б), голубая (Г).
 * На первом месте в цепочке стоит бусина синего или желтого цвета.
 *  В середине цепочки – любая из светлых бусин, если первая бусина темная, и любая из темных бусин,
 * если первая бусина светлая. На последнем месте – одна из бусин белого, голубого или зеленого цвета,
 * не стоящая в цепочке в середине. Какая из перечисленных цепочек создана по этому правилу?
 * 1) ЖСГ    2) БГЗ   3) СГЖ   4) ЖБС
 */
#include <iostream>
#include <stdio.h>
#include <locale>
#include <string>
using std::cin;
using namespace std;
 
struct bead_with_tone{
    int bead_color; // 0 синяя(С), 1 зеленая(З),   2 желтая(Ж), 3 белая(Б), 4 голубая(Г)
    bool bead_tone_boolean; // 1 - светлая   0 - темная
};
 
 
 
 
bool belongs_or_not(bead_with_tone chain[]){
    if(chain[0].bead_color == 0 || 2){
        if(chain[0].bead_tone_boolean == chain[2].bead_tone_boolean != chain[1].bead_tone_boolean){
            if(chain[1].bead_color != chain[2].bead_color){
                if(chain[2].bead_color == 1 || 3 || 4){
                    return 1;
                }
                else{
                    return 0;
                }
            }
            else{
                return 0;
            }
        }
        else{
            return 0;
        }
    }
    else{
        return 0;
    }
}
 
 
 
int main(){
 
    std::locale::global(std::locale("Russian"));
    char input_stream[3];
    std::cin >> input_stream[3];
 
 
 
    bead_with_tone input_data[3];
    for(int i = 0; i < 3; i++){
    if(input_stream[i] == "S"){
        input_data[i].bead_color = 0;
        input_data[i].bead_tone_boolean = 0;
    }
    if(input_stream[i] == "Z"){
        input_data[i].bead_color = 1;
        input_data[i].bead_tone_boolean = 0;
    }
    if(input_stream[i] == "H"){
        input_data[i].bead_color = 2;
        input_data[i].bead_tone_boolean = 1;
    }
    if(input_stream[i] == "B"){
        input_data[i].bead_color = 3;
        input_data[i].bead_tone_boolean = 1;
    }
    if(input_stream[i] == "G"){
        input_data[i].bead_color = 4;
        input_data[i].bead_tone_boolean = 1;
    }
    }
 
    cout << belongs_or_not(input_data)<< endl;
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2017, 21:43
Ответы с готовыми решениями:

помогите подобрать видеокарту думаю что то типа HD 5670-5770 или GTS250. Заранее спасибо
Подскажите пожалуйста какую видюху лучше выбрать. собираю комп, хочу проц athlon II x4 640...

компилятор выдает ошибку. Заранее спасибо
#include&quot;iostream&quot; #include &quot;stdafx.h&quot; #include&quot;string&quot; #include&quot;vector&quot; ...

13 задание разветвляющихся алгоритмов,не могу создать программу, заранее спасибо

Пожалуйста, спасите, не могу подобрать формулу к заданиям.Заранее Спасибо!
Прием на работу идет на конкурсной основе. Условия приема требуют 20 лет рабочего стажа и возраста...

1
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
18.12.2017, 21:52 2
Лучший ответ Сообщение было отмечено Матвей_2002 как решение

Решение

Цитата Сообщение от Матвей_2002 Посмотреть сообщение
if(chain[2].bead_color == 1 || 3 || 4)
так сравнение не делают.
C++
1
2
3
if (chain[2].bead_color == 1 || 
    chain[2].bead_color == 3 ||
    chain[2].bead_color == 4)
Добавлено через 1 минуту
Цитата Сообщение от Матвей_2002 Посмотреть сообщение
std::cin >> input_stream[3];
выход за границы массива - неопределенное поведение (UB). индексация идет от 0 до 2.

Добавлено через 2 минуты
пишите тогда так:
C++
1
2
3
4
5
6
7
8
int main(){
char input_stream;
bead_with_tone input_data[3];
for(int i = 0; i < 3; i++)
   std::cin >> input_stream;
   if(input_stream == 'S')
      ...
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2017, 21:52
Помогаю со студенческими работами здесь

Не могу разобраться в системе сообщения, прошу посодействовать. заранее спасибо
&lt;div id=&quot;contact_form&quot;&gt; &lt;h3&gt;Связь с нами&lt;/h3&gt; &lt;form method=&quot;post&quot;...

Не могу сделать программу, горю на экзамене, спасибо большое заранее.
Заданы элементы двух массивов а1,а2,…,а10 и b1,b2,…,b10. Косинус угла между этими двумя векторами...

Кто что знает? заранее спасибо!
1. Назовите протоколы маршрутизации, реализованные в Windows Server 2008. 2. Что такое таблица...

Не могу найти простейшую ошибку в методе Main
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Объясните что такое GNU. Спасибо заранее
Правильны ли мои предположения? GNU/Linux - это ОС с ПО которое имеет открытый исходный код. ...

Не могу разобраться с ошибкой. Delphi 7. Кому не сложно укажите где не так. Заранее спасибо
Помогите пожалуйста решить проблему. Гугл не помог Project excel.exe raised exception class...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru