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

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 15:26     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #1
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять

Добавлено через 22 минуты
вот так попробовал,но выбивает 0

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#include <stdio.h>
int main()
{
        int a,i;
    int buf[3];
    printf("Vedite 4islo");
    scanf("%i",a);
    for(i = 0; i < 3; i++)
    {
        buf[i] = a%10;
        a = a/10;
    }
    printf("New = %i",buf[i]);
     getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 15:26     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Посмотрите здесь:

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
C++ Дано натуральное число. Найти число, получаемое удалением из исходного всех цифр a
C++ найти число, которое получено из N перестановкой его цифр в обратном порядке
Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N C++
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
11.04.2013, 15:31     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #2
конечно фигню выведет, вы пишете
printf("New = %i",buf[i]);
где i<3 у вас был инвариант цикла, и в данном месте программы это будет символ следующий за выделенной памятью под массив
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
11.04.2013, 15:33     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <sstream>
#include <iostream>
 
int main()
  {
  int number;
 
  std::cout << "Enter a number" << std::endl;
  std::cin >> number;
 
  std::stringstream ss;
  ss << number;
 
  std::string str_number(ss.str());
  for (auto it = str_number.rbegin(); it != str_number.rend(); ++it)
    std::cout << *it;
  std::cout << std::endl;
 
  return 0;
  }
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
11.04.2013, 15:34     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #4
В функции scanf ошибка.
Попробуй вот так:
C++
1
scanf("%d", &a);
И вывод в этом решении надо сделать циклом:
C++
1
2
3
4
printf("New = ");
for(int i=2; i>=0; i--) {
   printf("%d", buf[i]);
}
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 15:46  [ТС]     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #5
Цитата Сообщение от stima Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <sstream>
#include <iostream>
 
int main()
  {
  int number;
 
  std::cout << "Enter a number" << std::endl;
  std::cin >> number;
 
  std::stringstream ss;
  ss << number;
 
  std::string str_number(ss.str());
  for (auto it = str_number.rbegin(); it != str_number.rend(); ++it)
    std::cout << *it;
  std::cout << std::endl;
 
  return 0;
  }

проблема в том что это я совсем не понял.хотелось бы в таком же формате как и у меня,что бы я понял,и запомнил.

Добавлено через 16 секунд
Цитата Сообщение от kuli4ok Посмотреть сообщение
В функции scanf ошибка.
Попробуй вот так:
C++
1
scanf("%d", &a);
И вывод в этом решении надо сделать циклом:
C++
1
2
3
4
printf("New = ");
for(int i=2; i>=0; i--) {
   printf("%d", buf[i]);
}
Спасибо,сейчас попробую

Добавлено через 6 минут
Цитата Сообщение от kuli4ok Посмотреть сообщение
В функции scanf ошибка.
Попробуй вот так:
C++
1
scanf("%d", &a);
И вывод в этом решении надо сделать циклом:
C++
1
2
3
4
printf("New = ");
for(int i=2; i>=0; i--) {
   printf("%d", buf[i]);
}
не получилось в итоге,новый ответ-> 000
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 15:47     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int reverse_num(int n) {
    bool mF=false;
    if(n<0) {
        n=-n;
        mF=true;
    }
    
    int tmp = 0; 
    while (n != 0) {
        tmp = 10 * tmp + n % 10;
        n /= 10;
    } 
    return (mF?-tmp:tmp);
}
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 16:03  [ТС]     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #7
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int reverse_num(int n) {
    bool mF=false;
    if(n<0) {
        n=-n;
        mF=true;
    }
    
    int tmp = 0; 
    while (n != 0) {
        tmp = 10 * tmp + n % 10;
        n /= 10;
    } 
    return (mF?-tmp:tmp);
}
не получилось,что то ужасное я сделал,в итоге повисла сама программа.
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
11.04.2013, 16:18     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #8
Вы не так подходите.

1. Прочитайте условие задачи.
2. Прочитайте условие задачи.
3. Разбивайте задачу на подзадачи, пока они вам не станут ясны или неделимы. Если у вас не получается разбить вернитесь к пункту 1.
4. Прочитайте условие задачи еще раз, если ваши подпункты не совпадают с условием вернитесь к пункту 1.
5. Решите каждую подзадачу. Так как ваши задачи или ясны вам или неделимы, то они скорее всего тривиальны.
6. Скомпонуйте.
7. Убедитесь в правильности.
8. Профит.
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 16:27  [ТС]     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #9
Цитата Сообщение от stima Посмотреть сообщение
Вы не так подходите.

1. Прочитайте условие задачи.
2. Прочитайте условие задачи.
3. Разбивайте задачу на подзадачи, пока они вам не станут ясны или неделимы. Если у вас не получается разбить вернитесь к пункту 1.
4. Прочитайте условие задачи еще раз, если ваши подпункты не совпадают с условием вернитесь к пункту 1.
5. Решите каждую подзадачу. Так как ваши задачи или ясны вам или неделимы, то они скорее всего тривиальны.
6. Скомпонуйте.
7. Убедитесь в правильности.
8. Профит.
В общем спасибо и на этом,постараюсь справиться.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 16:28     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #10
Цитата Сообщение от ebywku Посмотреть сообщение
не получилось
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
#include <iostream>
 
int reverse_num(int n) {
    bool mF=false;
    if(n<0) {
        n=-n;
        mF=true;
    }
    
    int tmp = 0; 
    while (n != 0) {
        tmp = 10 * tmp + n % 10;
        n /= 10;
    } 
    return (mF?-tmp:tmp);
}
 
int main(){
    int number;
    std::cout<<"Enter number[int] ->";
    std::cin>>number;
    std::cout<<"Number = "<<number<<"\n";
    std::cout<<"Reverse = "<<reverse_num(number)<<std::endl;
}
Warezovvv
 Аватар для Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
11.04.2013, 16:30     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #11
Ваша задача называется палиндром, если я верно понял, и на эту тему туча тучная задачек в гугле. Надо наверно сначала там поискать и только потом бежать на форум.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 16:39     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Еще ссылки по теме:

Число с записью цифр в обратном порядке C++
Дано натуральное число N. Найти наименьшее число М (N< M< 2N), которое делится на сумму цифр числа N (без оста C++
C++ Дано натуральное число. Определить сумму m его последних цифр. Если заданное число – менее чем m-значное, то

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

Или воспользуйтесь поиском по форуму:
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 16:39  [ТС]     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ #12
Цитата Сообщение от Warezovvv Посмотреть сообщение
Ваша задача называется палиндром, если я верно понял, и на эту тему туча тучная задачек в гугле. Надо наверно сначала там поискать и только потом бежать на форум.
я искал,но там в паскале.

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
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
#include <iostream>
 
int reverse_num(int n) {
    bool mF=false;
    if(n<0) {
        n=-n;
        mF=true;
    }
    
    int tmp = 0; 
    while (n != 0) {
        tmp = 10 * tmp + n % 10;
        n /= 10;
    } 
    return (mF?-tmp:tmp);
}
 
int main(){
    int number;
    std::cout<<"Enter number[int] ->";
    std::cin>>number;
    std::cout<<"Number = "<<number<<"\n";
    std::cout<<"Reverse = "<<reverse_num(number)<<std::endl;
}

идеально работает,осталось только разобраться немного)
Yandex
Объявления
11.04.2013, 16:39     Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Ответ Создать тему
Опции темы

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