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

Шахматная доска - C++

Восстановить пароль Регистрация
 
The_Immortal
1548 / 484 / 8
Регистрация: 04.04.2009
Сообщений: 1,891
07.08.2012, 15:19     Шахматная доска #1
Ребят, сейчас друг сидит на собеседовании, ему досталась какая-то слишком легкая задача (хотя работа вообще с кодингом не связана), но что-то он перенервничал и не может сообразить

Вывести шахматную доску 8x8 (1 - белый квадратик, 0 - черный).

Я быстренько накатал:

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
    int m[8][8];
 
    for (int i = 0; i < 8; i++) {
        if (!i) {
            for (int j = 0; j < 8; j++) {
                if (!(j % 2)) {
                    m[i][j] = 1;
 
                }
                else
                    m[i][j] = 0;
            }
        }
        else
            for (int j = 0; j < 8; j++) {
                if (!m[i - 1][0]) {
                    if (!(j % 2)) {
                        m[i][j] = 1;
 
                    }
                    else
                        m[i][j] = 0;
                }
                else {
                    if (!(j % 2)) {
                        m[i][j] = 0;
 
                    }
                    else
                        m[i][j] = 1;
 
                }
            }
    }
 
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            cout << m[i][j] << ' ';
        }
        cout << '\n';
    }
 
    system("pause");
Но может можно как-то поумнее сделать? Походу будет проверяться насколько рационально подошли к такой простой задаче...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2012, 15:19     Шахматная доска
Посмотрите здесь:

C++ шахматная доска
Шахматная доска C++
шахматная доска C++
Шахматная доска C++
C++ Шахматная доска
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.08.2012, 15:23     Шахматная доска #2
C++
1
2
3
for (int i=0; i<8; ++i)
for (int j=0; j<8; ++j)
mas[i][j] = (i+j)%2;
Ты об этом?
HighPredator
 Аватар для HighPredator
5342 / 1725 / 320
Регистрация: 10.12.2010
Сообщений: 5,108
Записей в блоге: 3
07.08.2012, 15:28     Шахматная доска #3
Можно так например:
C++
1
2
3
4
5
6
7
8
9
10
11
int a[8][8];
  int i,j;
  for(i=0;i<8;i++)
  {
    for(j=0;j<8;j++)
    {
      if((i+j)%2==0) std::cout<<1;
      else std::cout<<0;
    }
    std::cout<<std::endl;
   }
The_Immortal
1548 / 484 / 8
Регистрация: 04.04.2009
Сообщений: 1,891
07.08.2012, 15:31  [ТС]     Шахматная доска #4
nexen, ха-ха)) Спасибо большое! Вот я намудрил-то))
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
07.08.2012, 15:32     Шахматная доска #5
m[0][0] должен быть == 0, так как поле a8 (или h1) которое в верхнем левом углу - белое.
jack_pb
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 1
23.01.2015, 16:15     Шахматная доска #6
можно и так:
C++
1
2
3
4
5
6
7
8
for (int i = 1; i <=8 ; i++)
    {
        for (int j = 1; j <= 8; j++)
        {
            cout << (((j+i )% 2) == 0) << " ";
        }
        cout << endl;
    }
Yandex
Объявления
23.01.2015, 16:15     Шахматная доска
Ответ Создать тему
Опции темы

Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru