Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
#1

ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты - C++

02.10.2013, 11:00. Просмотров 1203. Ответов 10
Метки нет (Все метки)

ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты. Колода, начинается с двоек до туза, по очереди, для каждой масти.


через 52 кейсай делать не вариант. Подскажите как можно другим способам?(Использовать только if switch enum)Уже голову сломал и тока мысли про 52case
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 11:00     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты
Посмотрите здесь:

C++ класс колоды карт и карты
Написать программу, которая предлагает пользователю ввести целое число, определяет его четность и выводит результат в консоль C++
C++ Написать программу, которая предлагает пользователю ввести часы и минуты и выводит в консоль соответствующее введенному времени приветствие
C++ Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты
Написать программу, которая предлагает пользователю ввести два числа, которые определяют диапазон, и выводит в консоль сумму всех чисел, входящих в C++
C++ Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты. Колода,
ввести с клавиатуры последовательно семь чисел, вывести порядковый номер наименьшего из них C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
02.10.2013, 11:10     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #2
Cclassic, во-первых, название темы не информативно
во-вторых "Использовать только if switch enum" что это означает??? То есть объявление переменных тоже нельзя использовать???
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.10.2013, 11:11     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #3
C++
1
2
3
4
for( int i=0; i<52; ++i )
{
   cout << "suit:" << i / 13 << " denomination:" << i % 13 << endl;
}
связать масти с числами 0-3, связать достоинство карты с числами 0-12
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
02.10.2013, 11:26     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
char masti[4][7];
strcpy(masti[0],"pika");
strcpy(masti[1],"trefa");
strcpy(masti[2],"buba");
strcpy(masti[3],"chirva");
char karti[13][3];
for(int i=0;i<13;i++)
for(int j=0;j<3;j++)  karti[i][j]=0; //или karti[i][j]='\0';
 
karti[0][0]='2';
karti[1][0]='3';
karti[2][0]='4';
karti[3][0]='5';
karti[4][0]='6';
karti[5][0]='7';
karti[6][0]='8';
karti[7][0]='9';
karti[8][0]='1';
karti[8][1]='0';
karti[9][0]='V';
karti[10][0]='D';
karti[11][0]='K';
karti[12][0]='T';
cout<<"Vvedite nomer karti iz kolodi: ";
int n;
cin>>n;
if(n>0 && n<53)
{
   cout<<"vibrana "<<karti[n%13]<<" "<<masti[n/13]<<'\n';
}
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
02.10.2013, 11:27  [ТС]     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #5
Ребят без циклов)
только if или switch
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.10.2013, 11:30     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #6
Цитата Сообщение от Cclassic Посмотреть сообщение
через 52 кейсай делать не вариант
Цитата Сообщение от Cclassic Посмотреть сообщение
только if или switch
Остается только вариант if

Не по теме:

Что за бредовые задания вам дают?

Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
02.10.2013, 11:37     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #7
Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
char masti[4][7];
strcpy(masti[0],"pika");
strcpy(masti[1],"trefa");
strcpy(masti[2],"buba");
strcpy(masti[3],"chirva");
char karti[13][3];
 
strcpy(karti[0],"2");
strcpy(karti[1][0],"3");
strcpy(karti[2][0],"4");
strcpy(karti[3][0],"5");
strcpy(karti[4][0],"6");
strcpy(karti[5][0],"7");
strcpy(karti[6][0],"8");
strcpy(karti[7][0],"9");
strcpy(karti[8][0],"10");
strcpy(karti[9][0],"V");
strcpy(karti[10][0],"D");
strcpy(karti[11][0],"K");
strcpy(karti[12][0],"T");
cout<<"Vvedite nomer karti iz kolodi: ";
int n;
cin>>n;
if(n>0 && n<53)
{
   cout<<"vibrana "<<karti[n%13]<<" "<<masti[n/13]<<'\n';
}
Всё, циклов нет
Ilot
Модератор
Эксперт С++
1785 / 1160 / 225
Регистрация: 16.05.2013
Сообщений: 3,056
Записей в блоге: 5
Завершенные тесты: 1
02.10.2013, 11:38     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #8
Cclassic, вам же Tulosba написал как нужно ассоциировать карты с числами в чем еще проблема? Используйте свитч для масти и далее для ранга.
C++
1
2
3
4
5
6
7
8
9
10
11
switch (denomination)
{
    case 0: case 1: ... case 8:  cout << denomination + 2 ; break;
    case 9: cout << "Валет" ; break;
    ....
}
switch (suit)
{
    case 0: cout << "Треф"; break;
    ....
}
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
02.10.2013, 11:38  [ТС]     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #9
Цитата Сообщение от Algoritmer Посмотреть сообщение
Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
char masti[4][7];
strcpy(masti[0],"pika");
strcpy(masti[1],"trefa");
strcpy(masti[2],"buba");
strcpy(masti[3],"chirva");
char karti[13][3];
 
strcpy(karti[0],"2");
strcpy(karti[1][0],"3");
strcpy(karti[2][0],"4");
strcpy(karti[3][0],"5");
strcpy(karti[4][0],"6");
strcpy(karti[5][0],"7");
strcpy(karti[6][0],"8");
strcpy(karti[7][0],"9");
strcpy(karti[8][0],"10");
strcpy(karti[9][0],"V");
strcpy(karti[10][0],"D");
strcpy(karti[11][0],"K");
strcpy(karti[12][0],"T");
cout<<"Vvedite nomer karti iz kolodi: ";
int n;
cin>>n;
if(n>0 && n<53)
{
   cout<<"vibrana "<<karti[n%13]<<" "<<masti[n/13]<<'\n';
}
Всё, циклов нет
есть вариан 52 if сделать:-D ооо а если задействовать enum?
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
02.10.2013, 11:48     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #10
Цитата Сообщение от Cclassic Посмотреть сообщение
есть вариан 52 if сделать:-D ооо а если задействовать enum?
По-моему приведенный мной код явно короче,чем 52 if. Если не нравиться, смотрите сообщение от Ilot. Тоже вариант
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 12:04     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты
Еще ссылки по теме:

Написать программу, которая предлагает пользователю ввести число и выводит в консоль его справа налево, то есть перевернув C++
C++ Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка
Написать программу, которая предлагает пользователю ввести число и выводит в консоль его факториал C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 254
02.10.2013, 12:04     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты #11
единственное как тут можно прикрутить перечисления это в случае использования case.
Создаем перечисления мастей и значений и используем их в кейс для более удобного чтения исходника. но не более.
C++
1
2
3
4
5
6
7
...
enum masti{tref,pika,buben,cherva};
 enum karti{dvoika,troika,chetverka,pyaterka,shesterka,sem'orka,vosmerka,devyatka,desyatka,valet,dama,korol,tuz};
...
 
case:tref cout<<"треф";break;
...

Не по теме:


Хотя на мой взгляд перечисления тут не нужны вообще

Yandex
Объявления
02.10.2013, 12:04     ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты
Ответ Создать тему
Опции темы

Текущее время: 23:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru