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

Одномерный массив: найти количество элементов массива, меньших С - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
10.12.2012, 13:37     Одномерный массив: найти количество элементов массива, меньших С #1
Работа с линейным динамическим массивом.
В одномерном массиве, состоящем из n вещественных элементов (размерность массива задаётся пользователем), найдите количество элементов массива, меньших С. При разработке кода для перебора элементов массива использовать не индекс массива, а указатель на элемент массива.
Вычисления должны выполняться в отдельной функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 13:37     Одномерный массив: найти количество элементов массива, меньших С
Посмотрите здесь:

C++ Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное пользователем. Массив целочисленный, передается функции
C++ Найти количество элементов массива, меньших С
Одномерный массив. Найти количество элементов больше заданного. Найти произведение элементов за максимумом C++
Одномерный массив. Найти и напечатать количество чётных элементов и количество нечётных элементов C++
Массив. Найти количество элементов, меньших среднего арифметического положительных элементов этого массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 15:26  [ТС]     Одномерный массив: найти количество элементов массива, меньших С #2
Нужна помощь!!!
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
11.12.2012, 15:31     Одномерный массив: найти количество элементов массива, меньших С #3
C++
1
2
3
4
5
6
7
8
size_t count(double *ptr, size_t size, double c)
{
    size_t ret_val = 0;
    while (size--)
        if (*ptr++ < c)
            ++ret_val;
    return ret_val;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2012, 15:43     Одномерный массив: найти количество элементов массива, меньших С #4
Пaтрик, std::count_if
Пaтрик
11.12.2012, 15:45
  #5

Не по теме:

go, в курсе

rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
11.12.2012, 17:20     Одномерный массив: найти количество элементов массива, меньших С #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
#include <iostream>
#include <cstddef>
 
size_t count_if_less_than(const double* arr, size_t n, double x) {
 
    size_t res = 0;    
 
    for(const double* p = arr; p != arr + n; ++p)
        if(*p < x) ++res;
 
    return res;
}
 
int main() {
 
    size_t n;
    std::cout << "n: ";
    std::cin >> n;
    
    double* arr = new double[n];
 
    std::cout << "input array: " << std::endl;
    for(double* p = arr; p != arr + n; ++p)
        std::cin >> *p;
 
    double c;
    std::cout << "c: ";
    std::cin >> c;
 
    size_t res = count_if_less_than(arr, n, c);
    std::cout << "array[i] < " << c << ": " << res << std::endl;
 
    delete[] arr;
}
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 22:16  [ТС]     Одномерный массив: найти количество элементов массива, меньших С #7
спасибо большое что помогли!!!
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2012, 22:23     Одномерный массив: найти количество элементов массива, меньших С #8
Цитата Сообщение от Натали92 Посмотреть сообщение
спасибо большое что помогли!!!
Я тоже хочу поучавствовать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
   std::vector<int> v = { 1, 2, 3, 4, 5 };
   int d = 4;
   
   std::cout << std::count_if(std::begin(v), std::end(v), [&d] (const int& val)
   {
      return val < d;
   });
}
http://liveworkspace.org/code/3IDydp$2
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
11.12.2012, 22:40     Одномерный массив: найти количество элементов массива, меньших С #9
go,

Не по теме:

в LWS нужно убирать $ и все что за ней при копировании ссылки


Не по теме:

И наконец его открыли, черт подери



Добавлено через 8 минут
Решение в одну строчку
C++
1
2
3
4
5
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
int main() { std::vector<int> v = {1, 2, 3, 4, 5}; int d; std::cin >> d; std::cout << std::count_if(v.begin(), v.end(), std::bind2nd (std::less<int>(), d)) << std::endl; }
http://liveworkspace.org/code/2QEAZv
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 22:45  [ТС]     Одномерный массив: найти количество элементов массива, меньших С #10
спасибки)))
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2012, 22:47     Одномерный массив: найти количество элементов массива, меньших С #11

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Решение в одну строчку
Муть какая-то


Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
в LWS нужно убирать $ и все что за ней при копировании ссылки
нужно niXman написать



Добавлено через 2 минуты
Цитата Сообщение от go Посмотреть сообщение
нужно niXman написать
Нет не надо. Это номер версии.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.12.2012, 23:07     Одномерный массив: найти количество элементов массива, меньших С #12
Тоже выпендрюсь
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/count_if.hpp>
#include <boost/mpl/less.hpp>
 
int main()
{
   namespace mpl = boost::mpl;
   constexpr int c = 7;
   typedef typename mpl::vector_c<int, 1, 2, 3, 4, 5, 6, 7, 0, 10> arr;
   std::cout << mpl::count_if<arr, mpl::less<mpl::_1, mpl::int_<c> > >::value;
}
Результат: http://liveworkspace.org/code/3n8BL
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 23:13  [ТС]     Одномерный массив: найти количество элементов массива, меньших С #13
Анета
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 67
08.12.2013, 17:53     Одномерный массив: найти количество элементов массива, меньших С #14
Цитата Сообщение от rangerx Посмотреть сообщение
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
#include <iostream>
#include <cstddef>
 
size_t count_if_less_than(const double* arr, size_t n, double x) {
 
    size_t res = 0;    
 
    for(const double* p = arr; p != arr + n; ++p)
        if(*p < x) ++res;
 
    return res;
}
 
int main() {
 
    size_t n;
    std::cout << "n: ";
    std::cin >> n;
    
    double* arr = new double[n];
 
    std::cout << "input array: " << std::endl;
    for(double* p = arr; p != arr + n; ++p)
        std::cin >> *p;
 
    double c;
    std::cout << "c: ";
    std::cin >> c;
 
    size_t res = count_if_less_than(arr, n, c);
    std::cout << "array[i] < " << c << ": " << res << std::endl;
 
    delete[] arr;
}

а можете к этому коду еще добавить сумму чисел расположенных после последнего отрицательного числа?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
08.12.2013, 20:30     Одномерный массив: найти количество элементов массива, меньших С #15
C++
1
2
3
4
5
6
double* find_last_neg(double* arr, size_t n) {
  double* res = arr + n - 1;
  while((res >= arr) && (*res >= 0))
    --res;
  return (res >= arr) ? res : NULL;
}
C++
1
2
3
4
5
6
7
8
9
...
double sum = 0;
double* p = find_last_neg(arr, n);
if(p != NULL) {
  while(++p < (arr + n))
    sum += *p;
}
std::cout << "sum: " << sum << std::endl;
...
Анета
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 67
08.12.2013, 23:37     Одномерный массив: найти количество элементов массива, меньших С #16
rangerx, а что за ? в 5 строке первого кода?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
08.12.2013, 23:54     Одномерный массив: найти количество элементов массива, меньших С #17
Тернарный оператор. Если условие res >= arr истинно, то возвращается res, в противном случае возвращается NULL. В данном случае можно написать и так
C++
1
2
3
4
if(res >= arr)
  return res;
else
  return NULL;
либо
C++
1
2
3
if(res >= arr)
  return res;
return NULL;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 10:45     Одномерный массив: найти количество элементов массива, меньших С
Еще ссылки по теме:

Определить количество элементов массива, меньших среднего арифметиче-ского значений элементов этого массива C++
В первой половине массива нужно найти количество элементов, больших P, а в второй – меньших P C++
Найти количество элементов массива меньших заданного числа C++

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

Или воспользуйтесь поиском по форуму:
Гаджимурад
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 2
09.12.2013, 10:45     Одномерный массив: найти количество элементов массива, меньших С #18
#include <iostream>
using namespace std;
#include <math.h>
int main()
{
setlocale(0, "");
int a[10],i=0,c,k=0;
cout<<"Введите значение с; c=";
cin>>c;
cout<<"Введите одномерный массив:\n";
for(i=0;i<=9;i++) { cout<<"a["<<i+1<<"] = "; cin>>a[i];}
for(i=0;i<=9;i++) if(a[i]<c)k++;
cout<<"\nКоличество элементов меньших {c} = "<<k;
return 0;
}
Yandex
Объявления
09.12.2013, 10:45     Одномерный массив: найти количество элементов массива, меньших С
Ответ Создать тему
Опции темы

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