Определить, сможет ли ферзь перейти с одной клетки на другую - C (СИ)
Формулировка задачи:
проверка правильности введения точек делать не обязательно.
метод решения не важен.
моя прога не работает, не видит printf("\tpo gor(a,b,c,d,e,f,g,h)=\n "); scanf("%c",&n4)
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main()
{
int m1,m2;
char n3;
char n4;
printf("vvedite koorditati 1 polya\n");
printf("\tpo gor(a,b,c,d,e,f,g,h)= "); scanf("%c",&n3);
printf("\tpo vert(1,2,3,4,5,6,7,8)= "); scanf("%d",&m1);
printf("\nvvedite koordinati 2 polya\n");
printf("\tpo gor(a,b,c,d,e,f,g,h)=\n "); scanf("%c",&n4);
printf("\tpo vert(1,2,3,4,5,6,7,8)= "); scanf("%d",&m2);
if (m1==m2 || n3==n4 || (fabs(n3-n4))==(fabs(m1-m2)))
printf("\n\tfers smojet!");
else
printf("\n\tfers ne smojet!");
;
return 0;
}Решение задачи: «Определить, сможет ли ферзь перейти с одной клетки на другую»
textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main()
{
int m1,m2;
char n3;
char n4;
printf("vvedite koorditati 1 polya\n");
printf("\tpo gor(a,b,c,d,e,f,g,h)= "); scanf("%c",&n3);
printf("\tpo vert(1,2,3,4,5,6,7,8)= "); scanf("%i%*c",&m1);
printf("\nvvedite koordinati 2 polya\n");
printf("\tpo gor(a,b,c,d,e,f,g,h)= "); scanf("%c",&n4);
printf("\tpo vert(1,2,3,4,5,6,7,8)= "); scanf("%i%*c",&m2);
if (m1==m2 || n3==n4 || (fabs(n3-n4))==(fabs(m1-m2)))
printf("\n\tfers smojet!\n");
else
printf("\n\tfers ne smojet!\n");
;
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные: m1,m2 - для хранения введенных координат, n3,n4 - для хранения символов
- Выводим сообщение и призыв к вводу координат первого поля
- Считываем координаты: сначала символ, затем целое число (со сбрасыванием остатка введенного числа в начало следующего поля ввода)
- Выводим сообщение и призыв к вводу координат второго поля
- Считываем координаты: сначала символ, затем целое число (со сбрасыванием остатка введенного числа в начало следующего поля ввода)
- Производим проверку: если условие выполняется, то выводим сообщение о возможности хода, иначе выводим сообщение о невозможности хода
- Завершаем программу и возвращаем 0