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

Перевернуть число - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.79
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
03.05.2012, 18:13     Перевернуть число #1
Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.

Примечание: Например, пользователь ввел число 12345. На экране должно появиться число наоборот - 54321.


C++ (Qt)
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
#include <iostream>
using namespace std;
 
int main ()
{
    setlocale (LC_CTYPE, "Russian");
 
    int number ; 
    int k;
    int temp ;
 
    cout<<"Введите число: ";
    cin>>number;
    temp = number; //Т.к. полсе цикла number будет равна 0, то нужно сохранить её значение в отдельной переменной
    k = 0;
    while (number != 0 ) // Сколько всего цифр в числе
    {
        number = number /10;
        k++;
    }
    number = temp;
    
    for (int i = k; number != 0; i--) 
    {
        cout<<i<<" цифра = "<<number % 10<<"\n";
        number = number / 10;
    }
    
    
}
Как в последнем цикле записать каждую новую цифру в отдельную переменную, чтобы потом можно было перевернуть число.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
03.05.2012, 19:19     Перевернуть число #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
string str1,str2;
cin>>str1;
    reverse_copy(str1.begin(),str1.end(),back_inserter(str2));
cout<<str2<<endl;
 
system("pause");
return 0;
}
//---------------------------------------------------------------------------
А вообще если охота мучатся с типом int, то получить отдельное число можно делением на 10^n, где n определяет позицию числа
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
03.05.2012, 19:29     Перевернуть число #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
 
int main()
{
    std::size_t num;
    std::cin >> num;
    std::stringstream ss;
    ss << num;
    std::string s(ss.str());
    std::reverse(s.begin(), s.end());
    ss.str(s);
    ss >> num;
    std::cout << num << std::endl;
    return 0;
}
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
03.05.2012, 19:32     Перевернуть число #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
long int reverse( long int number ) {
    long int revNum = 0;
    
    while ( number ) {
       revNum = revNum * 10 + number % 10;
       number /= 10;
    }
    
    return revNum;
}
 
int main() {
   std::cout << reverse( 123 ) << std::endl;
 
   return 0;
}
Вывод.
Думаю, что от Вас хотят что вроде этого.
Yandex
Объявления
03.05.2012, 19:32     Перевернуть число
Ответ Создать тему
Опции темы

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