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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поменять местами цифры в числе 
:(
    Опции темы
dimafeng
Дата 27.3.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как поменять местами цифры в числе?

Например:
есть целочисленное число 1234, нужно получить 4231...
PM MAIL   Вверх
nworm
Дата 27.3.2006, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да как угодно. Например, в строку переводить и символы переставлять.
PM MAIL WWW   Вверх
darkart
Дата 27.3.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну к примеру так...
Код

#include<iostream>
#include<conio.h>
using namespace std;
unsigned int Reverse(int num)
{
    unsigned int tmp=0;
    while(num)
    {
        tmp=tmp*10+num%10;//предыдущее число умножаем на 10 и прибавляем посл. цифру числа num
        num/=10;//затираем последнюю цифру числа
    }
    return tmp;
}
int main()
{
    unsigned int num;
    cout<<"Please enter number:\n";
    cin>>num;
    cout<<"Result="<<Reverse(num)<<"\n";
    getch();
    return 0;
}

PM MAIL WWW ICQ Skype GTalk   Вверх
Dov
Дата 27.3.2006, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Или так...
Код
#include <iostream.h>
#include <stdlib.h> 
#include <string.h>

int main()    
{
    int num = 1234;
    char str[33];

    cout << (num = atoi(strrev(itoa(num, str, 10)))) << endl;
}



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


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

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



У меня было похожое задание в книжке я его решал так:

Код

#include <stdio.h>

main()
{
        int num1, num2, num3, num4, number;
        
            printf("Enter number:\n");
                scanf("%d", &number);
                
                // начало разделения цыфр 

            num1 = number / 1000; // 1
            num2 = number % 1000; // 234
            num3 = number % 100; // 34
            num4 = number % 10; // 4
            
            num2 = num2 / 100; // 2 
            num3 = num3 / 10; // 3

                // конец разделения цыфр
            
            printf("%d%d%d%d", num4, num3, num2, num1); // 4 3 2 1 меняем цыфры местами

            
        

        return 0;
    }


Это сообщение отредактировал(а) d00mik - 28.3.2006, 15:11


--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
MAKCim
Дата 28.3.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

У меня было похожое задание в книжке я его решал так:

впечатляет smile
Добавлено @ 16:39
а если число большое?
изменять программу?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
doomik
Дата 28.3.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

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



Цитата

а если число большое?
изменять программу?

угу,Пришлось бы изменять, я ещё не достиг таких знаний smile


--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
LuckLess
Дата 28.3.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



можешь еще это попробовать
Код

#include <iostream>
#include <algorithm>
#include <sstream>

int replace_digits(int num , int digit1 , int digit2){
    bool is_negative = num<0;
    if (is_negative) num*=-1;

    std::ostringstream ostr;
    ostr << num;

    std::string str = ostr.str();
    if (str.size() >= digit1 && str.size() >= digit2){
        std::swap(str.at(digit1-1),str.at(digit2-1));

        std::istringstream istr(str);
        istr >> num;
    }

    if (is_negative) num*=-1;
    return num;
}

void main(void){
    std::cout << replace_digits(-1699533,2,7);
}

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


Шустрый
*


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

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



Всем спасибо, разобрался smile
PM MAIL   Вверх
Objegog
Дата 7.9.2022, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
hipAppops
Дата 10.9.2022, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
anceria
Дата 13.9.2022, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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