ОБСУЖДЕНИЕ

Задчка на С. Помогите плз.

6 ответов 9,2 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число - номер вертикали (при счете слева направо), второе - номер горизонтали (при счете снизу вверх). Даны натуральные числа k,l,m,n, каждое из которых не превосходит восьми. Требуется: На поле (k,l) расположен ферзь.
Угрожает ли он полю (m,n) ??
 
bool IsDangerForThis(POINT kl,POINT mn)
{
POINT vect;
vect.x=mn.x-kl.x;
vect.y=mn.y-kl.y;
if(vect.x==0 || vect.y==0 || abs(vect.x)==abs(vect.y)) //находятся на одной //прямой или диагонали
{
vect.x/=abs(vect.x);
vect.y/=abs(vect.y);
//направляющий вектор
POINT tmp=kl;
while(1)
{
tmp.x+=vect.x;
tmp.y+=vect.y;
if(tmp.x==mn.x && tmp.y==mn.y) return false;
if(!IsEmpty(tmp)) return false; //проверяем пусто ли поле
}

return true;
}


return false;
}
 
Спасибо, только вопрос: Какие тут библиотеки используются?
Что такое bool??
Что такое Point??
 
Хмм, кстати, мне же надо на чистом С, а bool это вроде из С++...
 
Ну как это сделать то? помогите плзз
 
:) :) :) :)
Я фигею, такую элементарщину и не решить!
 
Код:
#include <stdio.h>
#include <math.h>

int main()
{
double k,l,m,n;

printf("input k\n");
scanf("%lf", &k);
printf("input l\n");
scanf("%lf", &l);
printf("input m\n");
scanf("%lf", &m);
printf("input n\n");
scanf("%lf", &n);

if ((k-l==m-n)||(k==m)||(l==n)||(k+l==m+n))

printf("Danger!!!!");
else 
printf("No danger!");
return 0;
}

Вот так вроде? Эту элементарщину я решил...
 
Статус
Закрыто для дальнейших ответов.