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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод наоборот, Вывод переменных наоборот 
:(
    Опции темы
heforma
Дата 3.9.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, я получил задание создать программу которая принимает значение в 10-тичной системе и выводит на экран значение в любой выбранной системе от 2 до 36.
Код

#include<iostream>
using namespace std;
void st(int dig,int sys);
void main()
{
    int dig,sys=0;
    cout<<"Enter a digit:\t";
    cin>>dig;
    cout<<"Enter a system(2-36):\t";
    cin>>sys;
    st(dig,sys);
    system("pause");
}
void st(int dig,int sys)
{
    int a;
    for(;dig>0;dig/=sys){
    a=(dig%sys);
    switch(a)
    {
        case 10:
            cout<<'A';
            break;
        case 11:
            cout<<'B';
            break;
        case 12:
            cout<<'C';
            break;
        case 13:
            cout<<'D';
            break;
        case 14:
            cout<<'E';
            break;
        case 15:
            cout<<'F';
            break;
        case 16:
            cout<<'G';
            break;
        case 17:
            cout<<'H';
            break;
        case 18:
            cout<<'I';
            break;
        case 19:
            cout<<'J';
            break;
        case 20:
            cout<<'K';
            break;
        case 21:
            cout<<'L';
            break;
        case 22:
            cout<<'M';
            break;
        case 23:
            cout<<'N';
            break;
        case 24:
            cout<<'O';
            break;
        case 25:
            cout<<'P';
            break;
        case 26:
            cout<<'Q';
            break;
        case 27:
            cout<<'R';
            break;
        case 28:
            cout<<'S';
            break;
        case 29:
            cout<<'T';
            break;
        case 30:
            cout<<'U';
            break;
        case 31:
            cout<<'V';
            break;
        case 32:
            cout<<'W';
            break;
        case 33:
            cout<<'X';
            break;
        case 34:
            cout<<'Y';
            break;
        case 35:
            cout<<'Z';
            break;
        default:
            cout<<a;
        }
    }
    cout<<endl;
}

Вот мои старания, в результате работы программа выводит на экран значение в нужной сис. счисления но наоборот, динамические массивы изучены не были=(
Подскажите что сделать пожалуйста.
PM MAIL   Вверх
586
Дата 3.9.2011, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Цитата(heforma @  3.9.2011,  17:52 Найти цитируемый пост)
динамические массивы изучены не были=(

рекурсии изучали?
PM   Вверх
heforma
Дата 3.9.2011, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(586 @ 3.9.2011,  17:29)
Цитата(heforma @  3.9.2011,  17:52 Найти цитируемый пост)
динамические массивы изучены не были=(

рекурсии изучали?

Нет=( покажите что это... изученные самостоятельно материалы у нас приветствуются =)
PM MAIL   Вверх
mes
Дата 3.9.2011, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(heforma @  3.9.2011,  15:52 Найти цитируемый пост)
  case 10:
            cout<<'A';
            break;
        ...
        case 35:
            cout<<'Z';
            break;
   default:
            cout<<a;


для допиливания :
Код

if (a>9 && a<36) std::cout << 'A'+ (a-10);
else std::cout << '0'+ a;


Добавлено @ 19:53
а по теме, чтоб не вплетать дополнительные возможности, попробуйте делить не с конца, а с начала.. smile
и вся задача сведется к элементарной математике.. 

Это сообщение отредактировал(а) mes - 4.9.2011, 00:24


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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

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



Цитата(heforma @  3.9.2011,  16:52 Найти цитируемый пост)
выводит на экран значение в нужной сис. счисления но наоборот

Выводить не напрямую в поток, а сначала в строку, потом эту строку перевернуть (или просто вывести строку начиная с конца).

Добавлено @ 23:17
Небольшое уточнение
Цитата(mes @  3.9.2011,  19:48 Найти цитируемый пост)
std::cout << 'A'+ (a-9);

'A'+ (a-10);


Это сообщение отредактировал(а) volatile - 3.9.2011, 23:18
PM MAIL   Вверх
mes
Дата 4.9.2011, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(volatile @  3.9.2011,  22:15 Найти цитируемый пост)
Небольшое уточнение

ага.. запарился.. подправил, спс smile



--------------------
PM MAIL WWW   Вверх
heforma
Дата 9.9.2011, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mes @  3.9.2011,  19:48 Найти цитируемый пост)
а по теме, чтоб не вплетать дополнительные возможности, попробуйте делить не с конца, а с начала.. 
и вся задача сведется к элементарной математике.. 

Как это делить с конца? приведите пожалуйста пример...

PM MAIL   Вверх
bsa
Дата 9.9.2011, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Цитата(heforma @  9.9.2011,  14:21 Найти цитируемый пост)
Как это делить с конца?

имеется в виду вывод на экран остатка от деления на основание. А под "делением сначала" подразумевается вывод частного от деления на основание в максимальной степени, затем остаток на основание на степень ниже...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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