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

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

Войти
Регистрация
Восстановить пароль
 
Andrew2012
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 3
#1

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

13.02.2012, 04:26. Просмотров 1049. Ответов 1
Метки нет (Все метки)

Здравствуйте!
Есть задача: дана шахматная доска размером NxN, нужно расставить N ферзей таким образом, чтобы они не атаковали друг друга.
Нашёл код, но при при компиляции выдаёт ошибку: fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory Error executing cl.exe. (фатальная ошибка C1083: не может открыться включенный файл: ''stdafx.h'').
Подскажите пожалуйста, как это можно исправить
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
#include "stdafx.h"
#include <iostream>
using namespace std;
void Initialization(int n, int ***x);
void Destruction(int n, int **x);
bool Queen(int n, int **x);
void Placement(int n, int **a, int *p, int *h, int *du, 
               int *dd, int i=0, int j=0);
 
int _tmain(int argc, _TCHAR* argv[]){
  int n, i, j;
  bool otv;
  int **mas;
  printf("Ââåäèòå Г°Г*çìåð ГёГ*õìГ*ГІГ*îé äîñêè n : ");
  scanf ("%d",&n);
  Initialization(n,&mas);
  otv = Queen(n,mas);
  if ( otv ) printf("ГЏГ°Г*âèëüГ*îå Г°Г*çìåùåГ*ГЁГҐ Г*Г*éäåГ*Г®\n");
  else printf("ГЏГ°Г*âèëüГ*îãî Г°Г*çìåùåГ*ГЁГї Г*ГҐ Г*Г*éäåГ*Г®\n");
  Destruction(n,mas);
  system("pause");
  return 0;
}
 
//ГЁГ*èöèГ*ëèçГ*öèÿ ïîëÿ ГёГ*õìГ*ГІГ*îé äîñêè
void Initialization(int n, int ***x){ 
  *x = new int*[n]; 
  for (int i = 0 ; i < n; i++ ){
    (*x)[i] = new int[n];
    for (int j = 0 ; j < n ; j++ )
      (*x)[i][j] = 0;
  }
} 
 
//âûâîä Г*Г*éäåГ*Г*îé Г°Г*Г±Г±ГІГ*Г*îâêè Гў ГґГ*éë
void Destruction(int n, int **x){ 
  FILE *f;
  if( ( f = fopen("out.txt","w") ) == NULL ){
    printf("Г”Г*éë out.txt Г*ГҐ ìîæåò áûòü îòêðûò äëÿ Г§Г*ГЇГЁГ±ГЁ");
  }
    else{
      fprintf(f,"%d\n",n);
      for (int i = 0 ; i < n; i++ ){
        for (int j = 0 ; j < n ; j++ )
          fprintf(f,"%2d",x[i][j]);
        fprintf(f,"\n");
      }
    }
  for (int i = 0 ; i < n; i++ )
    delete [] x[i];
  delete [] x;
} 
 
//ïðîâåðêГ* âîçìîæГ*îñòè ïîñòГ*Г*îâêè ôåðçÿ
bool Queen(int n, int **x){
  bool rez = false;
  int *p, *h, *du, *dd;
  p = new int[n];
  h = new int[n];
  du = new int[2 * n - 1];
  dd = new int[2 * n - 1];
  for ( int i = 0 ; i < n ; i++ )
    p[i] = h[i] = 0;
  for ( int i = 0 ; i < (2 * n - 1) ; i++ )
    du[i] = dd[i] = 0;
  Placement(n,x,p,h,du,dd);
  if ( h[0] != 0 ) rez = true;
  delete [] dd, du, h, p;
  return rez;
}
 
//îïèñГ*Г*ГЁГҐ ГґГіГ*êöèè Г°Г*Г±Г±ГІГ*Г*îâêè ôåðçåé
void Placement(int n, int **a, int *p, int *h, int *du, 
               int *dd, int i, int j){
  if ( j >= 0 && j < n )
    if ( i < n )
      if (h[i]==0 && du[i+j] == 0 && dd[n+i-j-1] == 0 ) {
        h[i] = 1;
        du[i+j] = 1;
        dd[n+i-j-1] = 1;
        p[j] = i;
        a[i][j] = 1;
        Placement(n,a,p,h,du,dd,0,j+1);
      }
      else
        Placement(n,a,p,h,du,dd,i+1,j);
    else
      if ( j > 0 ) {
        h[p[j-1]] = 0;
        du[p[j-1]+j-1] = 0;
        dd[n+p[j-1]-(j-1)-1] = 0;
        a[p[j-1]][j-1] = 0;
        Placement(n,a,p,h,du,dd,p[j-1]+1,j-1);
      }
}
 Комментарий модератора 
Используйте теги форматирования кода!
Вложения
Тип файла: rar листинг.rar (1.0 Кб, 18 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 04:26     шахматная доска
Посмотрите здесь:

Шахматная доска - C++
Даны координаты двух различных полей шахматной доски x1,x2,y1,y2(Целые числа лежащие в диапазоне от 1 до 8). Проверить истинность...

Шахматная доска - C++
Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой...

шахматная доска!! - C++
Нужно вывести шахматную доску, где белые клетки - 0 и черные - 1, воспользовавшись тем, что если сумма номера столбца и строки четная, то...

шахматная доска - C++
помогите написать программу, которая отображает на экране следующий рисунок шахматной доски:

Шахматная доска Turbo C++ - C++
Нужно нарисовать и закрасить. Вот нарисовал, но как закрасить клетки через раз? #include&lt;graphics.h&gt; #include&lt;conio.h&gt; int...

Шахматная доска и строка - C++
Есть 3 задачки, немного не соображу как их решить. Помогите горе-программисту :) 1) Поле шахматной доски определяется парой...

Шахматная доска, найти ошибки в коде - C++
Здравствуйте, нужно вывести шахматную доску, у меня куча ошибок и я не могу никак сделать // Шахматная доска #include &lt;graphics.h&gt; ...

Шахматная доска. Ну или вывод символов по клеткам - C++
Задание звучит так: Написать программу, которая выводит на экран шахматную доску. Количество клеток шахматной доски, размер каждой клетки...

Решение задачи на ветвление (2 коня и шахматная доска) - C++
Поле шахматной доски определяется парой натуральных чисел, каждое которых не превосходит восьми: первое число – номер вертикали (при счете...

Заполнить квадратную матрицу по правилу «шахматная доска» - C++
Помогите заполнить квадратную матрицу порядка N по следующему правилу: «шахматная доска» - чередовать в каждой строке числа 0 и 1, причем...

Шахматная доска: угрожает ли ферзь, стоящий на поле (k, l), полю (m, n)? - C++
Собственно,условие вот. Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе —...

Шахматная доска. Выяснить, угрожает ли конь, стоящий на поле (k, l), полю(m, n) - C++
Поле шахматной доски определяется парой натуральных чисел,первое из которых задает номер вертикали, а второй- номе горизонтали. Даны...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gustav21
20 / 20 / 2
Регистрация: 23.10.2009
Сообщений: 139
13.02.2012, 11:47     шахматная доска #2
stdafx.h - это файл т.н. предварительно откомпилированных заголовков. Посмотри, в свойствах проекта должна быть установлена опция - pre-compiled headers (Предварительно откомпилированные заголовки)

Добавлено через 2 минуты
Или если эта опция выключена, удали сточку #include "stdafx.h" вообще
Ответ Создать тему
Опции темы

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