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

Посчитать количество элементов в одномерном массиве - C++

Восстановить пароль Регистрация
 
Skaynett
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 14
29.10.2013, 10:06     Посчитать количество элементов в одномерном массиве #1
Помогите решить задачу .
Посчитать сколько элементов в одномерном массиве, состоящих из четырех или меньше символов. Вывести количество элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 10:06     Посчитать количество элементов в одномерном массиве
Посмотрите здесь:

C++ В одномерном массиве посчитать сумму элементов,находящихся в четных позициях и т.д
В одномерном массиве посчитать сумму элементов, находящихся в чётных позициях C++
C++ В одномерном массиве посчитать сумму элементов, находящихся в четных позициях
C++ В одномерном массиве посчитать сумму элементов до максимального.
В одномерном массиве посчитать сумму элементов до минимального. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
29.10.2013, 10:11     Посчитать количество элементов в одномерном массиве #2
Цитата Сообщение от Skaynett Посмотреть сообщение
сколько элементов
Каких элементов?
Если символов, равных заданному, то так:
C++
1
2
3
4
5
6
char mass[5]="abbc";
char sim;cin>>sim;
int count=0;
for(int i=0;i<4;i++)
    if(mass[i]==sim)
        count++;
Skaynett
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 14
29.10.2013, 10:17  [ТС]     Посчитать количество элементов в одномерном массиве #3
сосчитать и вывести количество элементов массива которые из четырех или меньше символов
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5437 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
29.10.2013, 10:37     Посчитать количество элементов в одномерном массиве #4
Цитата Сообщение от Skaynett Посмотреть сообщение
сосчитать и вывести количество элементов массива которые из четырех или меньше символов
C++
1
2
3
4
5
6
const int n = 5;
int count = 0;
int a[n] = {1, 22, 333, 4444, 55555};
 
for( int i=0; i<n; i++ )
  if( a[i]<10000 ) count++;
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.10.2013, 11:16     Посчитать количество элементов в одномерном массиве #5
Цитата Сообщение от Skaynett Посмотреть сообщение
сосчитать и вывести количество элементов массива которые из четырех или меньше символов
может цифр?
Иначе число -1000 подходит или нет? Число 11.55?
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
29.10.2013, 11:28     Посчитать количество элементов в одномерном массиве #6
Таки может перемудрил:
Кликните здесь для просмотра всего текста

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
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using std::string;
std::vector<string> result; //массив с найденными элементами
void smallelemen(string&, std::vector<string>& res = result);
void show(const string&);
int main()
{
    system("chcp 1251>0");
    char ch;
    std::vector<string> mass;   //исходный массив
    std::cout << "Программа для нахождения элементов в списке, содержащих менее пяти символов." <<std::endl;
 
    do
    {
        string elem;
        std::cout << "Введете  элемент списка:"; std::cin >> elem;
        mass.push_back(elem);
        std::cout << "Продолжить(д/н)?"; std::cin >> ch;
    }
    while(ch != 'н');
    std::cout << std::endl;
    std::for_each(mass.begin(), mass.end(), smallelemen);
    std::cout << "Количество искомых элементов в списке: " << result.size() << std::endl;
    std::for_each(result.begin(), result.end(), show);
    return 0;
}
void smallelemen(string& value, std::vector<string>& res )
{
    if (value.size() <= 4)
        res.push_back(value);
}
void show(const string& value)
{
    std::cout << value << std::endl;
}

И у меня сразу вопрос к людям знающим. Как можно реализовать добавление только определенных элементов из вектора в другой вектор. Здесь я сделал аргумент по умолчанию, но при этом пришлось вынести определение массива result вне тела программы. Вопрос можно ли этого не делать? Т.е. как организовать алгорит, что бы этого не пришлось делать. Заранее спасибо.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.10.2013, 11:30     Посчитать количество элементов в одномерном массиве #7
Ilot, std::copy_if например.
C++
1
2
3
4
std::copy_if(mass.begin(), mass.end(), res.begin(), [](const std::string& value)
{
   return value.size() <= 4;
});
Но вообще резоннее решать через std::count_if.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
   std::vector<std::string> values((std::istream_iterator<std::string>(std::cin)),
   std::istream_iterator<std::string>());
   std::cout << std::count_if(values.begin(), values.end(), [](const std::string& v)
   {
      return v.size() <= 4;
   }) << std::endl;
}
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
29.10.2013, 11:39     Посчитать количество элементов в одномерном массиве #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Но вообще резоннее решать через std::count_if.
Ну так вам еще требуется вывести найденные элементы. Поэтому думаю будет лучше сперва построить новый вектор, а затем просто посчитать его длину. Делов-то.
Цитата Сообщение от ForEveR Посмотреть сообщение
Ilot, std::copy_if например.
Постойте, а последний параметр не должен быть указателем на функцию возвращающую bool?
Прошу сразу извинить если где-то пишу ерунду. Только вчера начал изучать STL.
P.s. Странно у Мюссера нет алгоритмов с _if... или я плохо смотрю...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.10.2013, 11:40     Посчитать количество элементов в одномерном массиве #9
Ilot, Последним параметром должен быть callable объект принимающий Iterator::value_type и возвращающий bool или нечто, что можно неявно конвертировать в bool.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
29.10.2013, 11:57     Посчитать количество элементов в одномерном массиве #10
Не подскажите. Компилятор ругается на copy_if, однако определяет его как зарезервированный алгоритм.
error: 'copy_if' is not a member of 'std'
Как я понимаю ругается на то что алгоритм не принадлежит пространству std. Но какого лешего? Танцы с бубном не помогают.
И еще вы бы не могли разъяснить вот эту конструкцию:
C++
1
2
3
4
...[](const std::string& v)
   {
      return v.size() <= 4;
   })...
Я вроде как понимаю, что это какая-то безимянная ф-я определенная на месте, однако не до конца понимаю синтаксис...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.10.2013, 12:00     Посчитать количество элементов в одномерном массиве #11
Ilot, Лямбда-функция. Анонимный функциональный объект введенный в С++11.
http://en.cppreference.com/w/cpp/algorithm/copy
copy_if доступен тоже только начиная с С++11.
Skaynett
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 14
29.10.2013, 12:01  [ТС]     Посчитать количество элементов в одномерном массиве #12
Условие такое вводим в одномерный массив слова , и нужно вывести на экран количество слов которые состоят из 4 или меньше символов
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
29.10.2013, 12:03     Посчитать количество элементов в одномерном массиве #13
Цитата Сообщение от Skaynett Посмотреть сообщение
Условие такое вводим в одномерный массив слова , и нужно вывести на экран количество слов которые состоят из 4 или меньше символов
Skaynett, моя программа решает данную постановку. Вот только сейчас до красоты ее причешим.
Цитата Сообщение от ForEveR Посмотреть сообщение
copy_if доступен тоже только начиная с С++11.
Ах вот оно в чем дело... У меня компилятор данный стандарт не поддерживает.
Однако странно, что редактор распознает алгоритм как зарезервированный... ладно потом разберемся...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2013, 16:38     Посчитать количество элементов в одномерном массиве
Еще ссылки по теме:

В одномерном числовом массиве посчитать среднее арифметическое отрицательных элементов C++
C++ В одномерном массиве посчитать сумму элементов

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

Или воспользуйтесь поиском по форуму:
Skaynett
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 14
29.10.2013, 16:38  [ТС]     Посчитать количество элементов в одномерном массиве #14
Помогите сделать задачу
Условие такое вводим в одномерный массив слова , и нужно вывести на экран количество слов которые состоят из 4 или меньше символов
Yandex
Объявления
29.10.2013, 16:38     Посчитать количество элементов в одномерном массиве
Ответ Создать тему
Опции темы

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