![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.08.2010
Сообщений: 26
|
![]()
задана логическая структура
struct card{ //масть карт enum{spades,clubs,diamonds,hearts} suit; //достоинство карт enum{six,seven,eight,nine,ten,jack, queen,king,ace} value; }c1,c2; //масть и домтоинство карт описать логическую функцию kick (c1, c2, cs), проверяющую, бьёт ли карта с1 карту с2, с учётом того, что масть сs является козырной. Вот код. Компилятор естественно не выдаёт ошибки. Но при работе программы результат выводится, только если брать карты одной масти. Как сделать так, чтобы с картами разных мастей программа работала правильно? Вот сам код: (visual studio) //программа проверяет, бьёт ли карта с1 карту с2, с учётом того, что масть сs является козырной #include<stdio.h> struct card{ //масть карт enum{spades,clubs,diamonds,hearts} suit; //достоинство карт enum{six,seven,eight,nine,ten,jack, queen,king,ace} value; }c1,c2; //масть и домтоинство карт void kick(); void main() { printf("Масти:"); printf("\nПики = 1"); printf("\nТрефы = 2"); printf("\nБубны = 3"); printf("\nЧервы = 4"); printf("\n\nДостоинство: (6, 7, 8, 9, 10, валет = 2, дама = 3, король = 4, туз = 1"); printf("\nВведите масть первой карты: "); scanf("%d",&c1.suit); printf("Введите достоинство первой карты: "); scanf("%d",&c1.value); printf("Введите масть второй карты: "); scanf("%d",&c2.suit); printf("Введите достоинство второй карты: "); scanf("%d",&c2.value); kick(); } void kick() { int cs; printf("Введите козырь: "); scanf("%d",&cs); if(c1.suit==c2.suit) //масть первой карты равна масти второй карты { printf("%d",c1.value>c2.value); //достоинство первой карты равно достоинству второй карты } if(c1.suit!=c2.suit) //масть первой карты не равна достоинству второй карты { printf("%d",c1.suit==cs); //масть является козырной } } |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 24.08.2010
Сообщений: 26
|
![]()
Ну что, никто не может помочь?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
![]()
if(c1.suit==c2.suit) //масть первой карты равна масти второй карты
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 24.08.2010
Сообщений: 26
|
![]()
И что в этой строчке?
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
![]()
Ошибка, внезапно! Я просто так строчки не цитирую.
Вобще лучше перепиши функцию полностью. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
А что не так? Насколько я могу судить (не знаю язык C), но всё написано верно (ну, кроме комментариев - там неверно
![]() В чём выражается неработоспособность программы? Для каких значений c1 c2 и cs программа работает неверно? |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
![]()
Вся функция неправильная.
Оно выводит результат сравнения c1.value>c2.value если масти карт равны. И выводит результат сравнения c1.suit==cs если масти не равны. А вот прокомментировано почти верно. Да, еще - в задаче kick (c1, c2, cs) (скорее всего с результатом типа bool) А в коде void kick(). |
![]() |
![]() |
![]() |
#8 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
простите, уважаемый, а Вы в "дурака" играете?...
Имхо, всё верно. Цитата:
Цитата:
А если c1 не козырная и их масти не равны, то c1 не бьёт c2. я не вижу тут косяков... ![]() а вот насчёт того, что kick должна быть логической функцией, я с Вами полностью согласен: Цитата:
|
|||
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
![]() Цитата:
Последний раз редактировалось ZaRDaK; 17.09.2010 в 22:24. Причина: оформил теги |
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Контрольные карты | Умпут | Microsoft Office Excel | 0 | 07.07.2010 09:37 |
Карты изображений | Syltan | HTML и CSS | 1 | 06.04.2010 01:48 |
вытягивание карты | Superlotles | Общие вопросы C/C++ | 2 | 28.03.2010 17:49 |
Карты - начинающий | Scheres | HTML и CSS | 7 | 22.07.2009 10:30 |
игра про карты например (дурак) | alex@x | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 06.12.2007 15:53 |