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

перемещеные элементов в одномерном массиве - C++

Восстановить пароль Регистрация
 
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
30.12.2011, 08:45     перемещеные элементов в одномерном массиве #1
помогите пожалуйста с задачами.

1. В одномерном массиве все нулевые элементы переместить в конец массива, дополнительный массив использовать не разрешается.
2. В матрице А(4,4) найти среднее арифметическое нечетных элементов ниже главной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2011, 08:45     перемещеные элементов в одномерном массиве
Посмотрите здесь:

C++ Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве.
В одномерном массиве из 100 элементов определить сумму положительных элементов C++
C++ В одномерном массиве, состоящем из n элементов , вычислить сумму элементов между
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму отрицательных элементов массива C++
В одномерном массиве, состоящем из 5 элементов, вычислить среднее арифметическое всех элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 09:17     перемещеные элементов в одномерном массиве #2
Цитата Сообщение от osipov93 Посмотреть сообщение
В одномерном массиве все нулевые элементы переместить в конец массива, дополнительный массив использовать не разрешается.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main()
{
    srand(time(nullptr));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), [] { return rand() % 5; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    for(auto it = std::find(v.begin(), v.end(), 0), end = v.end(); it != end; it = std::find(it, v.end(), 0))
        std::swap(*it, *(--end));
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Без C++0x
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
template <class T> T gen() { return rand() % 5; }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), gen<int>);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    for(std::vector<int>::iterator it = std::find(v.begin(), v.end(), 0), end = v.end(); it != end; it = std::find(it, v.end(), 0))
        std::swap(*it, *(--end));
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
30.12.2011, 09:21  [ТС]     перемещеные элементов в одномерном массиве #3
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main()
{
    srand(time(nullptr));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), [] { return rand() % 5; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    for(auto it = std::find(v.begin(), v.end(), 0), end = v.end(); it != end; it = std::find(it, v.end(), 0))
        std::swap(*it, *(--end));
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Без C++0x
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
template <class T> T gen() { return rand() % 5; }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), gen<int>);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    for(std::vector<int>::iterator it = std::find(v.begin(), v.end(), 0), end = v.end(); it != end; it = std::find(it, v.end(), 0))
        std::swap(*it, *(--end));
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}

не работает
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 09:30     перемещеные элементов в одномерном массиве #4
Цитата Сообщение от osipov93 Посмотреть сообщение
В матрице А(4,4) найти среднее арифметическое нечетных элементов ниже главной диагонали.
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
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
template <class T> T gen() { return rand() % 21; }
 
int main()
{
    srand(time(NULL));
    const int size = 4;
    int arr[size][size];
    for(int i = 0; i < size; ++i)
    {
        std::generate(arr[i], arr[i] + size, gen<int>);
        std::copy(arr[i], arr[i] + size, std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << std::endl;
    }
    std::cout << std::endl;
    int sum = 0;
    int count = 0;
    for(int i = 1; i < size; ++i)
        for(int j = 0; j < i; ++j, ++count)
            sum += arr[i][j];
    std::cout << static_cast<float>(sum) / count << std::endl;
    return 0;
}
Добавлено через 1 минуту
Все работает Там 2 кода, один под катом.
ps/ Кат - синеньке буквы подчеркнутые прерывистой линией.
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
30.12.2011, 09:37  [ТС]     перемещеные элементов в одномерном массиве #5
Цитата Сообщение от osipov93 Посмотреть сообщение
не работает
на nullptr ругается
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 09:48     перемещеные элементов в одномерном массиве #6
Цитата Сообщение от soon Посмотреть сообщение
Там 2 кода, один под катом.
ps/ Кат - синеньке буквы подчеркнутые прерывистой линией.
.....
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
30.12.2011, 09:51  [ТС]     перемещеные элементов в одномерном массиве #7
Цитата Сообщение от soon Посмотреть сообщение
.....
мне бы как нибудь максимально попроще написать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 10:02     перемещеные элементов в одномерном массиве
Еще ссылки по теме:

C++ В одномерном массиве состоящий из n элементов вычислить количество элементов массива, меньших C
C++ В одномерном массиве, состоящем из вещественных элементов вычислить номер минимального элемента в массиве, сумму элементов массива
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить количество отрицательных элементов массива

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 10:02     перемещеные элементов в одномерном массиве #8
Цитата Сообщение от osipov93 Посмотреть сообщение
В одномерном массиве все нулевые элементы переместить в конец массива, дополнительный массив использовать не разрешается.
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 <iostream>
#include <iomanip>
 
template <class T> void Swap(T& a, T& b)
{
    T tmp = a;
    a = b;
    b = tmp;
}
 
int main()
{
    const int size = 10;
    int arr[size];
    for(int i = 0; i < size; ++i)
        std::cin >> arr[i];
    for(int *end = arr + size, *begin = arr; begin != end; )
        if(*begin == 0)
            Swap(*begin, *(--end));
        else
            ++begin;
    for(int i = 0; i < size; ++i)
        std::cout << std::setw(4) << arr[i];
    std::cout << std::endl;
    return 0;
}
Yandex
Объявления
30.12.2011, 10:02     перемещеные элементов в одномерном массиве
Ответ Создать тему
Опции темы

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