Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 12:16   #1
#Legalas
Новичок
Джуниор
 
Регистрация: 01.04.2012
Сообщений: 3
По умолчанию выборка клетки в шахматах на С

не могу понять где ошибся. При старте программы всегда показывает черную клетку объясните почему... а и еще как можно сделать задание без goto? заранее спс

/*
Ввести два целых положительных числа

как номер столбца и строки поля шахматной доски

(каждое из диапазона от 1 до 8).

Определить и вывести на экран цвет этого поля.

*/

#include <stdio.h>
#include <locale.h>

int main (void)
{int a,b,c;
setlocale(LC_ALL, "Russian");
kink1:
printf("введи столбец доски от 1 до 8: ");
scanf("%d", &a);

printf("введи строку доски от 1 до 8: ");
scanf("%d", &b);

if ((a<=0)||(a>8)) {printf("вышел за пределы доски введи число от 1 до 8"); goto kink1; }
if ((b<=0)||(b>8)) {printf("вышел за пределы доски введи число от 1 до 8");goto kink1;}
else
a%=2;
if (a=1)
{b%=2;
if (b=1){printf("твоя клетка черная!!!");}
}
else {printf("твоя клетка белая!!!");}
getchar();
getchar();
return 0;
}

если тут непонятно вот с подчеркиванием синксиса программа http://pastebin.com/84pAiynB
#Legalas вне форума Ответить с цитированием
Старый 04.04.2012, 12:32   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Вместо этого
Код:
a%=2;
if (a==1)
{b%=2;
if (b==1){printf("твоя клетка черная!!!");}
}
else {printf("твоя клетка белая!!!");}
это
Код:
if ((a+b)%2==0)
{printf("твоя клетка черная!!!");}
else
{printf("твоя клетка белая!!!");}
Думаю так будет лучше, а то у тебя немного некорректное условие.
И ещё, getchar();, написанного один раз, будет достаточно =).
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 04.04.2012 в 12:50.
Rin вне форума Ответить с цитированием
Старый 04.04.2012, 12:36   #3
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Код:
if (a=1) 
{b%=2;
if (b=1)
На каком языке ты пишешь? На си? Тогда у тебя тут идёт не сравнение, а присваивание.
Сравнение будет так:
Код:
if (a==1) 
	{
		b%=2;
		if (b==1)printf("твоя клетка черная!!!");
		else printf("твоя клетка белая!!!");
	}
else printf("твоя клетка белая!!!");
(Тут я добавила ещё один else в случае если b!=1 - то клетка тоже белая или нет?)
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 04.04.2012, 12:44   #4
#Legalas
Новичок
Джуниор
 
Регистрация: 01.04.2012
Сообщений: 3
По умолчанию

ааа млин пасиба большое действительно забыл что сравнение пишется через ==
#Legalas вне форума Ответить с цитированием
Старый 04.04.2012, 13:01   #5
#Legalas
Новичок
Джуниор
 
Регистрация: 01.04.2012
Сообщений: 3
По умолчанию

все равно не правильно когда ввожу 3 столбец 1 строка пишет черная потмо ввожу 2 столбец 1 строка и она всеравно черная чтото тут не чисто....
#Legalas вне форума Ответить с цитированием
Старый 04.04.2012, 13:06   #6
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от #Legalas Посмотреть сообщение
все равно не правильно когда ввожу 3 столбец 1 строка пишет черная потмо ввожу 2 столбец 1 строка и она всеравно черная чтото тут не чисто....
У меня 2ой столбец с 1ой строкой выдаёт белую
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 04.04.2012, 13:25   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Я уже связывался с такой задачей. Перечитайте пост №2. Там всё нормально работает. А если подстраиваться под ваш код, то будет так:
Код:
if (a==1) 
    {
        b%=2;
        if (b==1)printf("твоя клетка черная!!!");
        else printf("твоя клетка белая!!!");
    }
else 
    {
        b%=2;
        if (b==0)printf("твоя клетка черная!!!");
        else printf("твоя клетка белая!!!");
    }
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 04.04.2012 в 14:28.
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на шахматной доске заданы 2 клетки соедините эти 2 клетки кратчайшим путем коня Ker_33rus Общие вопросы C/C++ 5 18.03.2010 12:25
Не могу вписать цифры в клетки (игра судоку) Lees27 Общие вопросы C/C++ 1 18.11.2009 17:28
Клетки в listView разным цветом Altera Компоненты Delphi 9 24.09.2009 16:08
Реализация модели эволюции клетки. Параллельное программирование на языке с. Заноза Помощь студентам 4 03.04.2008 22:13