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

Вывод на экран месяцев года - C++

Восстановить пароль Регистрация
 
YusipovIlsur
11 / 11 / 2
Регистрация: 17.12.2010
Сообщений: 52
04.03.2011, 09:31     Вывод на экран месяцев года #1
необходимо после определённой сортировки вывести на экран несколько месяцев года, которые должны быть записаны в виде римских цифр. есть какой-то ключ (%...) по этому поводу (возможно чисто для линукса) или как ещё это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2011, 09:31     Вывод на экран месяцев года
Посмотрите здесь:

C++ Вывод дня, месяца, года
Массив содержит сведения о количестве осадков выпавших за каждые 12 месяцев года написать программу определяющую количество засушливых месяцев(<30мм) C++
Структура: Вывести на экран книги 2010 года выпуска. C++
Составить таблицу из названий месяцев года и числа дней в каждом из них C++
Упражнение из Страуструпа (Определите таблицу названий месяцев года и числа дней в них) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.03.2011, 10:41     Вывод на экран месяцев года #2
Можно вставить проверку от 1 до 12, и выводить соответственно от I до XII. Как Вам такая идея ?
YusipovIlsur
11 / 11 / 2
Регистрация: 17.12.2010
Сообщений: 52
04.03.2011, 11:05  [ТС]     Вывод на экран месяцев года #3
в принципе, почему бы и нет, хорошая мысль. Просто я думал, что в С предусмотрены ключи с %, для автоматической смены стиля.

хотя лучше воспользуюсь предложенным способом, спасибо)
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.03.2011, 11:16     Вывод на экран месяцев года #4
Да есть то они есть, но для римских цифр ... ))) Врятли.
Nomos
1 / 1 / 0
Регистрация: 04.03.2011
Сообщений: 4
04.03.2011, 11:36     Вывод на экран месяцев года #5
Простите новичка, а вот так нормально будет?

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
31
32
33
34
35
36
37
38
#include "stdafx.h"
 
using namespace std;
 
const char* Months[] = {"", "I","II", "III", "IV"};
 
class CMonth
{
public:
    enum TMonth
    {
        EJanuary = 1,
        EFebruary,
        EMarch,
        EApril,
        EMay,
        EJune,
        EJuly,
        EAugust,
        ESeptember,
        EOctober,
        ENovember,
        EDecember
    };
    static char* GiveMeMonth(TMonth month) 
    {
        return (char*)Months[month];
    }
private:
    CMonth();
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout<<"The 2nd month is - "<<::CMonth::GiveMeMonth(CMonth::EFebruary)<<endl;
    system("pause");
}
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.03.2011, 11:44     Вывод на экран месяцев года #6
Nomos, А прикольно кстати, мне нравится сама конструкция
Dexter
 Аватар для Dexter
284 / 144 / 16
Регистрация: 13.10.2009
Сообщений: 164
04.03.2011, 11:45     Вывод на экран месяцев года #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
28
29
30
31
char* IntToRome(int t)
{
    char *f[7]={"I\0","V\0","X\0","L\0","C\0","D\0","M\0"};
    int k[8]={1,5,10,50,100,500,1000,0};
    int y[8]={7,0,0,2,2,4,4,0};
    if(t<4000)
    {
        char p[80]="\0";
        for(int i=6;i>=0;i--)
        {
            if(t>=k[i]-k[y[i]])
            {
                if(t<k[i])
                {
                    strcat(p,f[y[i]]);
                    strcat(p,f[i]);
                    t=t-k[i]+k[y[i]];
                }
                else
                {
                    for(int z=0;z<t/k[i];z++)
                        strcat(p,f[i]);
                    t=t%k[i];
                    i++;
                }
            }
        }
        return p;
    }
    else return "none";
}
Набросал функцию, может кому-то пригодится, которая число преобразовует в римский вид, только до 4к, так как больше 1000 я не знаю как пишутся у них буквы))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2011, 12:19     Вывод на экран месяцев года
Еще ссылки по теме:

C++ По введенному номеру времени года выдать месяцы, количество дней в каждом из месяцев
Вывести на экран количество месяцев оставшихся до конца года C++
Вывести на экран в шахматном порядке названия месяцев, имеющих одинаковое количество дней C++

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

Или воспользуйтесь поиском по форуму:
Nomos
1 / 1 / 0
Регистрация: 04.03.2011
Сообщений: 4
04.03.2011, 12:19     Вывод на экран месяцев года #8
Цитата Сообщение от DexterUa Посмотреть сообщение
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
31
char* IntToRome(int t)
{
    char *f[7]={"I\0","V\0","X\0","L\0","C\0","D\0","M\0"};
    int k[8]={1,5,10,50,100,500,1000,0};
    int y[8]={7,0,0,2,2,4,4,0};
    if(t<4000)
    {
        char p[80]="\0";
        for(int i=6;i>=0;i--)
        {
            if(t>=k[i]-k[y[i]])
            {
                if(t<k[i])
                {
                    strcat(p,f[y[i]]);
                    strcat(p,f[i]);
                    t=t-k[i]+k[y[i]];
                }
                else
                {
                    for(int z=0;z<t/k[i];z++)
                        strcat(p,f[i]);
                    t=t%k[i];
                    i++;
                }
            }
        }
        return p;
    }
    else return "none";
}
Набросал функцию, может кому-то пригодится, которая число преобразовует в римский вид, только до 4к, так как больше 1000 я не знаю как пишутся у них буквы))
imho, это как-то фигово, может типа такого -

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int _tmain(int argc, _TCHAR* argv[])
{
      int num = 2256;
      int h,t,o,th;
      char *ones[] = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
      char *tens[] = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
      char *hundreds[] = {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
      char *thousands[] = {"","M","MM","MMM","MMMM","MMMMM"};
 
     
        th = num / 1000;
    num = num % 1000; 
    h = num % 100;
    num = num % 100;    
    t = num / 10;
    o = num % 10;
    
    cout<<"The number 2256 in Roman is - "<<thousands[th]<<hundreds[h]<<tens[t]<<ones[o]<<endl;
    system("pause");
}
Yandex
Объявления
04.03.2011, 12:19     Вывод на экран месяцев года
Ответ Создать тему
Опции темы

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