Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 3

шахматная доска

13.02.2012, 04:26. Показов 2172. Ответов 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 Кб, 19 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2012, 04:26
Ответы с готовыми решениями:

С++ Шахматная доска
Помогите пожалуйста с заданием. Нужно сделать шахматную доску 16*16 и пользователь должен ввести координаты звездочек которые расположатся...

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

Шахматная доска
Ребята, помогите! Есть код на С++, выводящий на экран шахматную доску, нужно его дополнить обозначением клеток (по горизонтали 1,2,3... , и...

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

Добавлено через 2 минуты
Или если эта опция выключена, удали сточку #include "stdafx.h" вообще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.02.2012, 11:47
Помогаю со студенческими работами здесь

Шахматная доска
Ребят, сейчас друг сидит на собеседовании, ему досталась какая-то слишком легкая задача (хотя работа вообще с кодингом не связана), но...

Шахматная доска
Есть шахматная доска (8*8). Нужно с помощью фигуры &quot;конь&quot; обойти все 64 клетки шахматной доски. Что-то скопипастил, но работать не хочет....

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

Шахматная доска
Заполнить двумерный массив единицами и нулями таким образом, чтобы единицы размещались так, как на шахматной доске черный поля, а нули - ...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru