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

массив С++ - C++

Восстановить пароль Регистрация
 
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 12:42     массив С++ #1
Здравствуйте Ув.пользователи и администрация.
Имеется вот такая задача:
дан массив:
а)вывести его на экран
б)инвертировать, т.е. поменять местами 1ый элемент с последним 2ой с предпоследним и т.д. и вывести
в)посчитать количество элементов массива, превышающих 1ый элемент

Массив одномерный и динамический.
Программу должны выполнять функции (void main() должна содержать только ввод массива и соответственно вывод)
Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2011, 12:42     массив С++
Посмотрите здесь:

C++ с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. C++
C++ Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2)
Массив: Все элементы массива, кратные трем, записать в одномерный массив. C++
Сформировать массив А из четных элементов исходного массива, а массив В - из нечетных C++
Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. C++
Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 12:48     массив С++ #2
Цитата Сообщение от 1ive Посмотреть сообщение
посчитать количество элементов массива, превышающих 1ый элемент
Первый до или после инвертирования?
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 12:49  [ТС]     массив С++ #3
после.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 12:57     массив С++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
    srand(time(nullptr));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), [] { return rand() % 21; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::reverse(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::cout << std::count_if(v.begin(), v.end(), [=](int num) { return num > *v.begin(); }) << 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
23
24
25
26
#include <vector>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <algorithm>
 
template <class T> T gen() { return rand() % 21; }
 
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;
    std::reverse(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    int count = 0;
    for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it)
        if(*it > *v.begin())
            ++count;
    std::cout << count << std::endl;
    return 0;
}
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 14:14  [ТС]     массив С++ #5
soon? можно кое что уточнить?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 14:16     массив С++ #6
Спрашивайте.
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 14:18  [ТС]     массив С++ #7
вы сделали программу так что бы массив сам генерировал числа...и для понимания программа сложна (новичок я)...а как сделать что бы ввод массива осуществлялся с клавиатуры...?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 14:22     массив С++ #8
Цитата Сообщение от soon Посмотреть сообщение
return rand() % 21;
Замените на
C++
1
2
3
int num;
std::cin >> num;
return num;
Если вы используете первый код, и на
C++
1
2
3
T num;
std::cin >> num;
return num;
если второй(первый c С++0x, второй без)
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 14:44  [ТС]     массив С++ #9
большое спасибо...! а да и еще. коментарии ввести (если можно), т.е. когда выводим массив, когда инвертируем и наконец когда сравниваем с первым элементом
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 14:47     массив С++ #10
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 <vector>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <algorithm>
 
template <class T> T gen() { return rand() % 21; }
 
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;
    std::reverse(v.begin(), v.end());//инвертируем массив
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));//выводим массив
    std::cout << std::endl;
    int count = 0;
    for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it)//цикл сравнения
        if(*it > *v.begin())
            ++count;
    std::cout << count << std::endl;//вывод счетчика
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2011, 14:50     массив С++
Еще ссылки по теме:

C++ Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
C++ Массив: Переместить в массив Y все числа, дробная часть которых больше 5.
C++ Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным
Сжать массив, выбросив из него отрицательные элементы - массив становится пустым C++
Заполнить массив первыми ста простыми числами, и вывести массив на экран C++

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

Или воспользуйтесь поиском по форуму:
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
29.12.2011, 14:50  [ТС]     массив С++ #11
премного благодарен!
Yandex
Объявления
29.12.2011, 14:50     массив С++
Ответ Создать тему
Опции темы

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