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

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

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

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

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

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


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

Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты - C++
и последние. =) Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть...

Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты. Колода, - C++
Написать программу, которая предлагает пользователю ввести порядковый номер карты из колоды и выводит в консоль масть и достоинство карты....

Преобразовать номер игральной карты в ее достоинство - C++
Написал я, значит, колоду карт. 52 штуки, все растусовывается, всё раздается. Проблема вот в чем: в массиве у меня 52 карты, соответственно...

класс колоды карт и карты - C++
помогите найти ошибку не компелируется! #include <iostream> #include <stdlib.h> #include <time.h> #include <locale> using...

ввести с клавиатуры последовательно семь чисел, вывести порядковый номер наименьшего из них - C++
ввести с клавиатуры последовательно семь чисел, вывести порядковый номер наименьшего из них. Без массива , через цикл for , на С

Реализовать иерархию классов для моделирования работы магазина, продающего колоды карт (по 36 и 52 карты) - C++
Задание: 1. Реализовать класс: Магазин колод карт. Добавить возможность добавлять новые колоды(при добавлении присваивать каждой...

10
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
02.10.2013, 11:10 #2
Cclassic, во-первых, название темы не информативно
во-вторых "Использовать только if switch enum" что это означает??? То есть объявление переменных тоже нельзя использовать???
1
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
2
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 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';
}
1
Cclassic
0 / 0 / 0
Регистрация: 08.09.2013
Сообщений: 62
02.10.2013, 11:27  [ТС] #5
Ребят без циклов)
только if или switch
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.10.2013, 11:30 #6
Цитата Сообщение от Cclassic Посмотреть сообщение
через 52 кейсай делать не вариант
Цитата Сообщение от Cclassic Посмотреть сообщение
только if или switch
Остается только вариант if

Не по теме:

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

0
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 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';
}
Всё, циклов нет
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 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;
    ....
}
1
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?
0
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
02.10.2013, 11:48 #10
Цитата Сообщение от Cclassic Посмотреть сообщение
есть вариан 52 if сделать:-D ооо а если задействовать enum?
По-моему приведенный мной код явно короче,чем 52 if. Если не нравиться, смотрите сообщение от Ilot. Тоже вариант
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
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;
...

Не по теме:


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

0
02.10.2013, 12:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 12:04
Привет! Вот еще темы с ответами:

Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается - C++
как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается ?

Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается - C++
и так, вот условие: дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Вывести на экран порядковый номер...

Вывести название игральной карты в заданном виде - C++
Помогите, пожалуйста!!! Смоделировать выбор &quot;наугад&quot; одной карты из полного набора игральных карт, включающего 4 масти (&quot;пики&quot;,...

В последовательности символов, вывести порядковый номер R и r - C++
Условие задачи: В последовательности введенных символов (последний - $) определить порядковый номер первой буквы R (с учетом...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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