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

Функция возвращающая число с обратным порядком цифр - C++

Восстановить пароль Регистрация
 
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
21.03.2013, 15:57     Функция возвращающая число с обратным порядком цифр #1
Нужно написать функцию, которая воспринимает целое значение и возвращает число с обратным порядком цифр. Моя программа почему-то выводит неправильные значения. Помогите разобраться

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
#include<iostream>
#include<math.h>
using namespace std;
int naoborot(int);
int main()
{
    setlocale(0,"");
    int chislo;
 
    cout << "Введите число :";
    cin >> chislo;
    cout << "Наоборот число: " << naoborot(chislo) << endl;
}
int naoborot(int ch)
{
    int znaki = 0, del = 1, obrat = 0, i;
    while (ch/del > 0) // определение кол-ва знаков в числе
    {
        if (ch/del > 0)
            znaki++;
        del *= 10;
    }
 
    for (i = 1; i <= znaki; i++) // составление обратного числа
    {
        obrat = obrat + ch/pow(10.0,znaki - i)*pow(10.0,i-1);
        ch = ch%(int)pow(10.0,znaki - i);
    }
    return obrat;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 15:57     Функция возвращающая число с обратным порядком цифр
Посмотрите здесь:

Функция, анализирующая строку и возвращающая число C++
Составить функцию, которая формирует новое число с обратным порядком цифр по отношению к исходному числу C++
C++ Функция, возвращающая число, полученное из целого числа
Получить число с обращеннным порядком цифр C++
C++ Напишите функцию, получающую целое значение, которая возвращает число с обращенным порядком цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
21.03.2013, 16:14     Функция возвращающая число с обратным порядком цифр #2
Всё намного проще:
C++
1
2
3
4
5
6
7
8
9
10
int naoborot(int ch)
{
    int result=0;    
    while (ch!=0)
    {
      result=(result*10)+(ch%10);
      ch=(ch-(ch%10))/10;
    }
    return result;
}
И math подключать не надо!
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
21.03.2013, 16:18  [ТС]     Функция возвращающая число с обратным порядком цифр #3
Спасибо! Что-то плохо я соображаю .....
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
21.03.2013, 16:28     Функция возвращающая число с обратным порядком цифр #4
я бы сделал так, мне так понятней. правда возвращает не число, а строку, но StrToInt все решает если что)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
#include<iostream.h>
#include<windows.h>
#include<string.h>
int main(int argc, char* argv[])
{ string s;
  cout<<"Vvedite s="<<endl;
  cin>>s;
  for(int i=s.length()-1; i>=0; i--)
  {
     cout<<s[i];
     }
     cout<<endl;
  system("pause");
        return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
21.03.2013, 18:41     Функция возвращающая число с обратным порядком цифр #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
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
 
int reverseNumber (int );
 
int main ()
{
    int number;
    std::cout << "Input the number: ";
    std::cin >> number;
    std::cout << "Reverse number: " << reverseNumber(number) << std::endl;
 
    return 0;
}
 
int reverseNumber (int number)
{
    std::ostringstream temp;
    temp << number;
    std::string strNumber = temp.str();
    std::reverse(strNumber.begin(), strNumber.end());
 
    return atoi(strNumber.c_str());
}
Yandex
Объявления
21.03.2013, 18:41     Функция возвращающая число с обратным порядком цифр
Ответ Создать тему
Опции темы

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