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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
#1

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

11.04.2013, 15:26. Просмотров 1232. Ответов 11
Метки нет (Все метки)

Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять

Добавлено через 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 15:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ (C++):

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

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

Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. - C++
Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.

Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N - C++
Дано натуральное число N (N &lt;= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на...

Вывести на экран число, которое получается если прочитать заданное число в обратном порядке - C++
Составить программу, которая выводит на экран число, получаемое, если прочитать заданное число в обратном порядке Пример: 123 321...

Дано натуральное число. Найти число, получаемое удалением из исходного всех цифр a - C++
Дано натуральное число. Найти число, получаемое удалением из исходного всех цифр a.

11
abit
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 734
11.04.2013, 15:31 #2
конечно фигню выведет, вы пишете
printf("New = %i",buf[i]);
где i<3 у вас был инвариант цикла, и в данном месте программы это будет символ следующий за выделенной памятью под массив
0
stima
485 / 337 / 38
Регистрация: 22.03.2011
Сообщений: 1,079
Завершенные тесты: 2
11.04.2013, 15:33 #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;
  }
0
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
11.04.2013, 15:34 #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]);
}
1
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 15:46  [ТС] #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
0
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,643
Записей в блоге: 3
Завершенные тесты: 1
11.04.2013, 15:47 #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);
}
1
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 16:03  [ТС] #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);
}
не получилось,что то ужасное я сделал,в итоге повисла сама программа.
0
stima
485 / 337 / 38
Регистрация: 22.03.2011
Сообщений: 1,079
Завершенные тесты: 2
11.04.2013, 16:18 #8
Вы не так подходите.

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

1. Прочитайте условие задачи.
2. Прочитайте условие задачи.
3. Разбивайте задачу на подзадачи, пока они вам не станут ясны или неделимы. Если у вас не получается разбить вернитесь к пункту 1.
4. Прочитайте условие задачи еще раз, если ваши подпункты не совпадают с условием вернитесь к пункту 1.
5. Решите каждую подзадачу. Так как ваши задачи или ясны вам или неделимы, то они скорее всего тривиальны.
6. Скомпонуйте.
7. Убедитесь в правильности.
8. Профит.
В общем спасибо и на этом,постараюсь справиться.
0
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,643
Записей в блоге: 3
Завершенные тесты: 1
11.04.2013, 16:28 #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;
}
1
Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
11.04.2013, 16:30 #11
Ваша задача называется палиндром, если я верно понял, и на эту тему туча тучная задачек в гугле. Надо наверно сначала там поискать и только потом бежать на форум.
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 16:39  [ТС] #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;
}

идеально работает,осталось только разобраться немного)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 16:39
Привет! Вот еще темы с ответами:

Дано натуральное число N. Найти наименьшее число М (N< M< 2N), которое делится на сумму цифр числа N (без оста - C++
Дано натуральное число N. Найти наименьшее число М (N&lt; M&lt; 2N), которое делится на сумму цифр числа N (без остатка). Если такого числа...

найти число, которое получено из N перестановкой его цифр в обратном порядке - C++
Помогите пожалуйста, сессия скоро.. а я дуб дубом в си...... спасибо заранее!! Дано целое число N (N &gt; 0). Используя операции деления...

Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру - C++
Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру. Входные данные Дано натуральное число,...

Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр? - C++
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр?


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
11.04.2013, 16:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru