Автор Тема: Задача по С++  (Прочитано 3477 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн banamalama

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Задача по С++
« : 16 Февраля 2012, 20:29:18 »
Добрый вечер. Помогите пожалуйста разобраться в задачке.
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, второе - номер горизонтали. Даны натуральные числа k,l,m,n. Требуется выяснить, являются ли поля (k,l) и (m,n) полями одного цвета.



#include <stdio.h>
 
short int isEven(int x) { // функция проверки четности числа
 if(x % 2 == 0) 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(isEven(k) && isEven(l) && isEven(m) && isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(!isEven(k) && !isEven(l) && !isEven(m) && !isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(!isEven(k) && !isEven(l) && isEven(m) && isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(isEven(k) && isEven(l) && !isEven(m) && !isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(isEven(k) && !isEven(l) && isEven(m) && !isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(!isEven(k) && isEven(l) && isEven(m) && !isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(isEven(k) && !isEven(l) && !isEven(m) && isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else if(!isEven(k) && isEven(l) && !isEven(m) && isEven(n))  printf("\n Polj (k, l) i (m, n) - odnogo chveta.\n");
  else printf("\n Polj (k, l) i (m, n) - raznogo chveta.\n");
 return 0;
}

решение вроде верное, но дальше ввод чисел невозможен. в чем причина? может есть ошибки в коде?

Оффлайн Selyd

  • Старожил
  • ****
  • Сообщений: 408
    • Просмотр профиля
Re: Задача по С++
« Ответ #1 : 17 Февраля 2012, 22:08:31 »
Пусть координаты (p,q) и счёт вертикалей слева направо, а горизонталей - снизу вверх.
Если p - нечётное, тогда поле будет чёрным при q нечётном.
Если p - чётное, тогда поле будет чёрным при q чётном.
Вот и всё. Удачи.
В догонку - достаточно проверять произведение pq.
« Последнее редактирование: 17 Февраля 2012, 22:13:10 от Selyd »

Оффлайн wital1984

  • Постоялец
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: Задача по С++
« Ответ #2 : 18 Февраля 2012, 00:47:32 »
Пусть координаты (p,q) и счёт вертикалей слева направо, а горизонталей - снизу вверх.
Если p - нечётное, тогда поле будет чёрным при q нечётном.
Если p - чётное, тогда поле будет чёрным при q чётном.
Вот и всё. Удачи.
В догонку - достаточно проверять произведение pq.
Что-то я не догоняю, откуда p и q ? Нам даны 2 поля: (k,l) и (m,n)
Мой вариант:
1)если модуль (k-m) четное, то:
а) если модуль разности (l-n) четный, то одного цвета   
б) если нет - разного
2) если модуль (k-m) НЕчетное, то:
а) если модуль разности (l-n) Нечетный, то одного цвета   
б) иначе - разного

Оффлайн sp

  • Пользователь
  • **
  • Сообщений: 51
    • Просмотр профиля
Re: Задача по С++
« Ответ #3 : 18 Февраля 2012, 16:23:38 »
Решение Виталия абстрактное, абстрактнее не бывает. Откуда нумеруем, не важно. Цвета какие, не важно. Важно два разных. ИМХО, симпатично.
У топикстартёра цикла нет. Ввёл один раз числа, получил ответ и на выход.
Нужен ввод какой-то величины, которую прога поймёт, как команду "на выход".
Бесконечный цикл, там вопрос: выход или дальше крутим.

 

Олимпиадная задача "Дипломы"

Автор DrXakep

Ответов: 0
Просмотров: 5932
Последний ответ 30 Декабря 2012, 14:09:40
от DrXakep
Задача паскаль. Составить программу для построения таблицы значений

Автор Rydon

Ответов: 1
Просмотров: 8442
Последний ответ 21 Декабря 2009, 15:49:38
от Rydon
Срочно надо написать курсовую по информатике. Задача на языке VBA.

Автор lana

Ответов: 1
Просмотров: 5824
Последний ответ 12 Сентября 2010, 19:29:18
от InfStudent
Паскаль(задача). Составить программу определения показания часов

Автор Fairmont

Ответов: 0
Просмотров: 6449
Последний ответ 24 Февраля 2011, 21:25:22
от Fairmont
Задача в Turbo С. Написать программу построения одномерного массива

Автор deamond

Ответов: 1
Просмотров: 3774
Последний ответ 21 Декабря 2011, 12:04:34
от Hellko