Полная версия этой страницы:
Задчка на С. Помогите плз.
Mcicool
27:04:2006, 16:50
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число - номер вертикали (при счете слева направо), второе - номер горизонтали (при счете снизу вверх). Даны натуральные числа 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;
}
Mcicool
28:04:2006, 07:40
Спасибо, только вопрос: Какие тут библиотеки используются?
Что такое bool??
Что такое Point??
Mcicool
29:04:2006, 07:29
Хмм, кстати, мне же надо на чистом С, а 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;
}
Вот так вроде? Эту элементарщину я решил...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.