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

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

Войти
Регистрация
Восстановить пароль
 
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
#1

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

30.12.2011, 08:45. Просмотров 349. Ответов 7
Метки нет (Все метки)

помогите пожалуйста с задачами.

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

В одномерном массиве, состоящем из вещественных элементов вычислить номер минимального элемента в массиве, сумму элементов массива - C++
В одномерном массиве, состоящем из 10 вещественных элементов вычислить: 1. Номер минимального элемента в массиве 2. Сумму...

Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве. - C++
#include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip> #include <stdio.h> #include...

В одномерном массиве, состоящем из 5 элементов, вычислить среднее арифметическое всех элементов - C++
Написать прототип, определение функции и пример вызова функции для решения указанной далее задачи. исходные данные и результаты работы...

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

В одномерном массиве,состоящем из n целочисленных элементов вычислить произведение элементов массива - C++
В одномерном массиве,состоящем из n целочисленных элементов вычислить произведение элементов массива, расположенных между первым и вторым...

В одномерном массиве из 100 элементов определить сумму положительных элементов - C++
В одномерном массиве из 100 элементов определить сумму положительных элементов. Вывести полученное число.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 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
2540 / 1305 / 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
2540 / 1305 / 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 Посмотреть сообщение
.....
мне бы как нибудь максимально попроще написать
soon
2540 / 1305 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 10:02
Привет! Вот еще темы с ответами:

В одномерном массиве, состоящем из n элементов , вычислить сумму элементов между - C++
В одномерном массиве, состоящем из n элементов , вычислить сумму элементов между первым и вторым отрицательными элементами. Добавлено...

В одномерном массиве, состоящем из n элементов, вычислить произведение элементов массива с четными номерами - C++
#include &quot;iostream.h&quot; #include &quot;math.h&quot; main() { const int n=10 int mas,i,count; cout&lt;&lt;&quot;Введите элементы массива: &quot;\n&gt;&gt; ...

В одномерном массиве, состоящем из n вещественных элементов, вычислить количество отрицательных элементов массива - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отрицательных элементов массива; 2) сумму модулей...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массива; • произведение...


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

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

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