Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Определить расклад карт в игре Покер 
:(
    Опции темы
slavka3
Дата 7.12.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



Цитата

есть пять одинаковых, то вывести “Impossible”

PM MAIL   Вверх
Dov
Дата 7.12.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(slavka3 @  7.12.2006,  14:27 Найти цитируемый пост)
есть пять одинаковых, то вывести “Impossible”

Это у Олега правильно выводит.



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
volvo877
Дата 7.12.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 34
Всего: 116



slavka3, ты бы объяснил, ЧЕМ тебе мое решение не угодило? Паскаль, вроде, не С++... Вводил

1, 2, 3, 4, 4 - показало One Pair
1, 7, 3, 3, 7 - Two Pairs
5, 6, 8, 7, 9 - Straight
5, 5, 5, 8, 5 - Four of a Kind

(макс. число = 10)

А то без объяснений "НЕ РАБОТАЕТ" ...  smile 
PM MAIL   Вверх
Dov
Дата 7.12.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(volvo877 @  7.12.2006,  15:37 Найти цитируемый пост)
А то без объяснений "НЕ РАБОТАЕТ" ...

Между прочим alexeis1 за такие вещи очень сильно наказывает.
Так что, slavka3,  быстренько объясни товарищу, зачем Володька сбрил усы.  smile 

Это сообщение отредактировал(а) Dov - 7.12.2006, 17:27


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Oleg_Ci
Дата 7.12.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 25
Всего: 30



Цитата

Олег4, конечно могут, иначе это был бы не покер, а нечто другое.
 Я говорю про тот случай, когда числа не повторяются. Ещё раз...
До меня дошло smile 
вопросов больше неимею...

Добавлено @ 20:02 
Подправил smile 
Код

#include <stdio.h>
#include <stdlib.h>

const int size = 5;
int count( const int * m, int a ); // подсчёт количества чисел в массиве
bool find( const int * m, int a ); // поиск в массиве числа
int cmp( const void * a, const void * b ){
    return *(int*) b - *(int*) a;
}

/////////////// main ///////////////////
int main(int argc, char *argv[])
{ 
    int m[size]; // массив для чисел
    int n[size]; // массив для количества повтарений
    scanf("%d%d%d%d%d", &m[0], &m[1], &m[2], &m[3], &m[4] ); // считываем 5 чисел
    int i;
    for( i=0; i<size; i++ )
        n[i] = count( m, m[i] );

    qsort( m, size, sizeof(int), cmp );
    for( i=0; i<size-1 && m[i] == m[i+1]+1; i++ ); // если есть возврастающая полследовательность
    if( i == size-1 ) // есть пять последовательных, то вывести “Straight”
        puts("Straight");
    else if( find( n, 5 ))// есть пять одинаковых, то вывести “Impossible”
        puts("Impossible");
    else if( find( n, 4 ))// есть четыре одинаковых, то вывести “Four of а Kind”
        puts("Four of а Kind");
    else if( find( n, 3 ) && find( n, 2 ))// есть одинаковых 3 и 2, то вывести “Full House”
        puts("Full House");
    else if( find( n, 3 )) // есть три одинаковых, то вывести “Three of а Kind”
        puts("Three of а Kind");
    else if( count( n, 2 ) == 4 ) // есть два и два одинаковых, то вывести “Two Pairs”
        puts("Two Pairs");
    else if( find( n, 2 ))// есть два одинаковых, то вывести “One Pair”
        puts("One Pair");
    else // иначе вывести “Nothing”
        puts("Nothing");
    fflush(stdin);
    getchar(); // пауза
    return 0;
}
///////////////// End main //////////////////////
int count( const int * m, int a ){
    int x=0;
    for( int i=0; i<size; i++ )
        if( m[i] == a ) x++;
    return x;
}
bool find( const int * m, int a ){
    for( int i=0; i<size; i++ )
        if( m[i] == a ) return true;
    return 0;
}


Это сообщение отредактировал(а) Олег4 - 7.12.2006, 19:52
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.