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

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

11.04.2013, 15:26. Просмотров 1351. Ответов 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++):

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

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

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

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

Вывести на экран число, которое получается если прочитать заданное число в обратном порядке
Составить программу, которая выводит на экран число, получаемое, если прочитать...

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

11
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
11.04.2013, 15:31 #2
конечно фигню выведет, вы пишете
printf("New = %i",buf[i]);
где i<3 у вас был инвариант цикла, и в данном месте программы это будет символ следующий за выделенной памятью под массив
0
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 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
32 / 32 / 17
Регистрация: 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
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 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
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 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
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 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 / 3
Регистрация: 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
11.04.2013, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 16:39
Привет! Вот еще темы с решениями:

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

Найти число, которое получено из N перестановкой его цифр в обратном порядке
Помогите пожалуйста, сессия скоро.. а я дуб дубом в си...... спасибо заранее!!...

Дано натуральное число n (n 999999). Заполнить массив его цифрами, расположенными в обратном порядке
Дано натуральное число n (n 999999). Заполнить массив его цифрами,...

Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру
Дано натуральное число. Если число цифр в числе нечетно, то удалить его...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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