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

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

Восстановить пароль Регистрация
 
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 24
09.01.2013, 15:39     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #1
Ребят выручайте не могу зачет сдать из-за этой лабы =( не могу сделать. надо сделать через тип данных вектор.
" В заданном массиве натуральных чисел { A1, A2, .... An } заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке. Например для числа 156 на 651. "
Как препод объяснил надо каждое число в массиве перевернуть на обратное ему
Надеюсь на вашу помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 15:39     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке
Посмотрите здесь:

Определить функции: сумма цифр числа, вращение числа (цифры - в обратном порядке), деление чисел (результат - действительное число) C++
Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
Найти все числа в заданном диапазоне, которые делятся на сумму своих цифр. C++
Существуют натуральные числа равные сумме кубов своих цифр. Найдите такие числа в заданном интервале C++
Составить программу для нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
09.01.2013, 15:47     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #2
C++
1
2
3
4
5
6
int n(0),m(0);
std::cin >> n;
while (n != 0) {
m=m*10+n%10;
n/=10;
}
как-то так
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.01.2013, 16:07     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #3
Если через вектор, то с помощью алгоритмов. К примеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
 
int main()
{
    int array[5] = {1,2,3,4,5};
    std::vector<int> v(array, array+5);
    std::reverse(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout<<"\n";
    system("pause");
    return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,864
Записей в блоге: 2
Завершенные тесты: 1
09.01.2013, 16:41     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #4

Не по теме:

yuron_477, это же реверс всего массива, а не чисел, содержащихся в нем.
Да и зачем Вы используете вектор, если инициализируете его из обычного массива?



Это требуется?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstdlib>
#include <ctime>
 
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);
}
 
void fill_random(int * arr,size_t size){
    for(int i=0;i<size;++i)
        arr[i]=rand()%201-100;
}
void cout_arr(int * arr, size_t size){
    for(int i=0;i<size;++i)
        std::cout<<arr[i]<<' ';
    std::cout<<std::endl;
}
 
int main()
{
    const int size=10;
    int arr[size];
 
    fill_random(arr,size);
    cout_arr(arr,size);
 
    for(int i=0;i<size;++i)
        arr[i]=reverse_num(arr[i]);
 
    cout_arr(arr,size);
    return 0;
}
Название: Безымянный.jpg
Просмотров: 61

Размер: 12.7 Кб
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.01.2013, 17:04     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #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
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
 
void revers(int& val)
{
    int m = 0;
    while (val != 0) {
        m = m*10 + val%10;
        val/=10;
    }
    val = m;
}
 
int main()
{
    int array[5] = {-123, -2345, 345, 456, 567};
    std::vector<int> v(array, array+5);
    std::for_each(v.begin(), v.end(), revers);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout<<"\n";
    system("pause");
    return 0;
}

Не по теме:


Цитата Сообщение от Croessmah Посмотреть сообщение
Да и зачем Вы используете вектор, если инициализируете его из обычного массива?
Да это я так к примеру - у меня студия то вить не поддерживает списковую инициализацию.

13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 24
09.01.2013, 17:08  [ТС]     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #6
Спасибо большое
большое) при много благодарен

а можно заполнение элементов с клавиатуры добавить?

к примеру такое

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <vector> 
int main()
{ 
std::vector<int> v; 
int tmp; 
while (std::cin » tmp) // для выхода нажмите Ctrl + D 
v.push_back(tmp);
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,864
Записей в блоге: 2
Завершенные тесты: 1
09.01.2013, 17:16     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #7
Как вариант с векторами:
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
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
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 enter_num(){
    int n;
    std::cout<<"Enter number->";
    std::cin>>n;
    return n;
}
 
int main(){
    int size;
    std::cout<<"Enter size: ";
    std::cin>>size;
    std::vector<int> v(size);
    std::generate(v.begin(),v.end(),enter_num);
    std::ostream_iterator<int> cout_it(std::cout," ");
    std::copy(v.begin(),v.end(),cout_it);
    std::cout<<std::endl;
    std::transform(v.begin(),v.end(),v.begin(),reverse_num);
    std::copy(v.begin(),v.end(),cout_it);
    std::cout<<std::endl;
    return 0;
}
В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 17:41     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 24
09.01.2013, 17:41  [ТС]     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке #8
Спасибо большое)
спасли прям)
Yandex
Объявления
09.01.2013, 17:41     В заданном массиве натуральных чисел заменить все числа на такие числа, которые получаться из исходного записью его цифр в обратном порядке
Ответ Создать тему
Опции темы

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