Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Shok777
-29 / 0 / 0
Регистрация: 03.10.2015
Сообщений: 12
1

Шахматы. Ферзь

20.10.2015, 23:44. Просмотров 765. Ответов 1
Метки нет (Все метки)

Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе — номер горизонтали. Даны натуральные числа k, I, m, n. Требуется выяснить, угрожает ли ферзь, стоящий на поле .(k, l), полю (m, n).

Добавлено через 2 минуты
Есть вариант решения, но где ошибка? И можно ли было сделать попроще?
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
#include <stdio.h>
#include <conio.h>
 
 
 
short int Diagonal(int k, int l, int m, int n) { 
 if((k>m) && (l>n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i--;
   j--;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k<m) && (l>n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i++;
   j--;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k<m) && (l<n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i++;
   j++;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k>m) && (l<n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i--;
   j++;
  }
  if(j==n) return 1;
  else return 0;
 } 
}
 
 
 
int main()
{
 int k, l, m, n;
 printf("\n Vvedite chisla  k, l, m, n : \n");
 scanf("%d %d %d %d", &k, &l, &m, &n);
 if(k==m || l==n) 
 {
  printf("\n Threat\n");
 }
 else if(Diagonal(k,l,m,n))
 {
  printf("\n Threat\n");
 }
 else 
 {
  printf("\n Not Threat\n");
 }
 getch();
 return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2015, 23:44
Ответы с готовыми решениями:

Шахматы. Каждый ферзь бьет ровного одного ферзя
Всем привет! Помогите решить задачу: Расставить на шахматной доске максимальное...

ферзь
Всем доброго времени суток помогите найти ошибку в решений задачи Даны...

Определить, угрожает ли ферзь фигуре
Привет Всем !!!! Определить,угрожает ли ферзь, расположенный на поле ( n1,m1...

Проверить, бьет ли ферзь другую фигуру
Требуется определить, бьет ли ферзь, стоящий на клетке с указанными...

Определить, угрожает ли ферзь полю с заданными координатами
Поле шахматной доски определяется парой натуральных чисел, первое число - номер...

1
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
20.10.2015, 23:55 2
вертикаль k==m
горизонталь l==n
дигональ abs(k-l)==abs(m-n)

Добавлено через 1 минуту
Цитата Сообщение от Shok777 Посмотреть сообщение
if(k==m || l==n)
это поле где стоит ферзь
бьет ли ферзь сам себя?

Добавлено через 6 минут
Цитата Сообщение от Shok777 Посмотреть сообщение
if(k==m || l==n)
пардон,оплошал
это вертикали и горизонтали
а где стоит ферзь это
C++
1
if(k==m &&l==n)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 23:55

Проверить, угрожает ли ферзь фигуре на шахматной доске
Поле шахматной доски определяется парой натуральных чисел, первое число-номер...

Определить, бьет ли ферзь, находящийся в клетке (xy, y1) клетку (x2, y2)
На шахматной доске в клетке (x1, y1) находится шахматный ферзь. Определите,...

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


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

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

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