Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
#1

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

10.12.2012, 13:37. Просмотров 1652. Ответов 17
Метки нет (Все метки)

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

Массив. Найти количество элементов, меньших среднего арифметического положительных элементов этого массива
Всем привет! Пмогите пожалуйста написать программу! Массив a(30) сформирован...

Найти количество элементов массива, меньших С
Задача 1. В одномерном массиве,состоящем из n вещественных элементов,вычислить:...

Найти количество элементов массива меньших заданного числа
Доброго времени суток уважаемые форумчане. Пожалуйста напишите программный...

Одномерный массив. Найти и напечатать количество чётных элементов и количество нечётных элементов
массив F задан случайными числами в диапазоне от -30 до 20. найти и напечатать...

Найти количество элементов массива, меньших определенного числа, вводимого пользователем
Задача: Код:/*С одномерным массивом, состоящим из n вещественных элементов,...

В первой половине массива нужно найти количество элементов, больших P, а в второй – меньших P
У целочисленному массиве А (a0, a2, ..., an) случайных чисел парна число ...

17
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 15:26  [ТС] #2
Нужна помощь!!!
0
Пaтрик
417 / 392 / 132
Регистрация: 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;
}
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
11.12.2012, 15:43 #4
Пaтрик, std::count_if
0
Пaтрик
11.12.2012, 15:45
  #5

Не по теме:

go, в курсе

0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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;
}
1
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 22:16  [ТС] #7
спасибо большое что помогли!!!
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,251
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
1
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 22:45  [ТС] #10
спасибки)))
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
11.12.2012, 22:47 #11

Не по теме:

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


Не по теме:

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



Добавлено через 2 минуты
Цитата Сообщение от go Посмотреть сообщение
нужно niXman написать
Нет не надо. Это номер версии.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 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
1
Натали92
2 / 2 / 0
Регистрация: 10.12.2012
Сообщений: 25
11.12.2012, 23:13  [ТС] #13
0
Анета
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;
}

а можете к этому коду еще добавить сумму чисел расположенных после последнего отрицательного числа?
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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;
...
1
Анета
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 67
08.12.2013, 23:37 #16
rangerx, а что за ? в 5 строке первого кода?
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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;
1
Гаджимурад
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;
}
0
09.12.2013, 10:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 10:45
Привет! Вот еще темы с решениями:

Найти сумму и количество элементов массива, больших/меньших введенного с клавиатуры числа
В массиве из 20 целых чисел найти сумму и количество чисел, больших введенного...

Одномерный массив. Найти количество элементов больше заданного. Найти произведение элементов за максимумом
Задача 1. В одномерном массиве, состоящем из n вещественных элементов,...

Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное пользователем. Массив целочисленный, передается функции
Добрый вечер! Помогите пожалуйста) Создать функцию, которая возвращает...

Одномерный массив. Найти наименьшие среди элементов первого массива, которые не входят во второй массив.
Задано два массива. Найти наименьшие среди элементов первого массива, которые...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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