Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
jambas92
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
0

найти ошибку в задаче шахматы

11.09.2011, 13:37. Просмотров 567. Ответов 7
Метки (Все метки)

здравствуйте! не могу найти ошибку в своем решений. у кого какие идеи? условие задачи:

Азиз и Иван решили поиграть в шахматы. Однако у них не нашлось целой шахматной доски, поэтому Иван склеил ее из нескольких кусков. Каждый кусок вырезан из правильной шахматной доски. Однако Азиз считает что на полученной доске просто невозможно играть в шахматы. Поэтому вместо игры в шахматы они решили выяснить — а из какого минимального количества кусков шахматной доски Иван мог склеить эту доску. Помогите им!

Формат входных данных:
Стандартный поток ввода содержит восемь строк, состоящие из восьми символов «W» и «B», не разделенных пробелами. Символ «W» обозначает белую клетку, а символ «B» — черную.
Формат выходных данных:
Стандартный поток вывода должен содержать одно число — минимальное количество кусков, из которых могла быть склеена заданная доска.

пример:
вход:
WBWBWBBW
BWBBWBWB
WBWWBWBW
WBWWBWWB
BWBBWBWB
WBWBWWBW
BWBWBBWB
WBWBWWBW

выход: 4

мой код:

C++
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    char mas[8][8];
    int count1=0;
    int count2=0;
    int yaya;
 
    for (int i=0; i<8; i++)
    {
        for (int j=0; j<8; j++)
        {
            cin >> mas[i][j];
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[0][i1]==mas[0][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[1][i1]==mas[1][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[2][i1]==mas[2][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[3][i1]==mas[3][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[4][i1]==mas[4][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[5][i1]==mas[5][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[6][i1]==mas[6][j2+1])
        {
            count1++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[7][i1]==mas[7][j2+1])
        {
            count1++;
        }
    }
 
    //
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][0]==mas[j2+1][0])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][1]==mas[j2+1][1])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][2]==mas[j2+1][2])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][3]==mas[j2+1][3])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][4]==mas[j2+1][4])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][5]==mas[j2+1][5])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][6]==mas[j2+1][6])
        {
            count2++;
        }
    }
 
    for (int i1=0, j2=0; i1<8, j2<7; i1++, j2++)
    {
        if (mas[i1][7]==mas[j2+1][7])
        {
            count2++;
        }
    }
 
    cout << abs(count1- count2);
 
    return 0;
 
}
p/s: не судите за стиль моего программирования, знаю код можно написать куда компактнее и красивее.

Вернуться к обсуждению:
найти ошибку в задаче шахматы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2011, 13:37
Готовые ответы и решения:

Найти ошибку в задаче
Подскажите где ошибка (не выводит второй prosmotr): #include &lt;iostream&gt;...

Немогу найти ошибку в задаче(
Дана задача: вылислить ...

Помогите найти ошибку в задаче на структуры
Помогите , 1 ошибка в коде , код писал с книги . Буду очень благодарен за...

Найти ошибку в задаче на файловый ввод/вывод (задача про МКАД)
Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася...

я решил задачу про шахматы посмотрите ошибку
#include&lt;iostream&gt; using namespace std; int main() { int gorizontal,...

7
Другие темы раздела
C++ помогите с решением http://www.cyberforum.ru/cpp-beginners/thread350262.html
написать программу составления пятиугольника с вершинами вершинами (100,100), (150,100), (170,120), (150,140), (100,100). Закрасить поле с другим цветом. на языке dev-c++
C++ Не открывается файл для считывания #include "stdafx.h" #include <iostream> #include <stdio.h> #include <string> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread350246.html
C++ Система шумоочистки
Возможно ли как-то программно создать систему шумоочистки аудиопотока?
C++ Ромб. Что не так написал?
Что не так написал? #include <iostream> #include <conio.h> #include <windows.h> using namespace std; void main() { setlocale(LC_ALL, "RUS"); int a;
C++ Расставить приоритеты операций и вычислить значение заданного выражения (Помогите с задачей) http://www.cyberforum.ru/cpp-beginners/thread350221.html
Расставить приоритеты операций и вычислить значение заданного выражения, используя форматы машинного представления данных и правила выполнения операций. Создавайте темы с осмысленными и...
C++ Вписанные прямоугольники Даны 2 прямоугольника. Определить можно ли вписать один в другой. Пример 1 10 вписать в 9 9 возможно. Делал так: надо их диагонали найти, и точка пересечения одного должна совпадать со второй,... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru