0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 27
1

Создать функции возвращающую кол-во элементов массива N, которые равны значению m

06.12.2019, 13:22. Показов 2411. Ответов 11

Создайте функцию, которая вычисляет и возвращает количество элементов массива элементов типа long заданного размера N, равных m.

Никак не могу понять,что тут делать.
Примерно понимаю,что нужно указать число,к примеру m=3
и кол-во элементов массива,к примеру #define N 30
А как быть дальше,то есть,чтоб он их вывел не знаю.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2019, 13:22
Ответы с готовыми решениями:

Определение произведения значений элементов исходного массива, которые не равны заданному значению
1) Нужно создать функцию определения произведения значений элементов исходного массива, которые не...

В целочисленном массиве S из к элементов заменить те элементы которые равны минимальному значению этого массива
1)В целочисленном массиве S из к элементов заменить те элементы которые равны минимальному значению...

Одномерные массивы. Вывести на экран массив, составленный из номеров элементов исходного массива, которые равны заданному значению.
Надоела уже наверное...ноо..выручайте( с++ Задан массив целых чисел. Вывести на экран массив,...

Создать новый массив из номеров элементов первого массива, которые равны 0
Решите пожалуйста! Сформировать массив из К натуральных случайных чисел в диапазоне от -5 до 5....

11
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
06.12.2019, 14:57 2
Цитата Сообщение от _Constantine_ Посмотреть сообщение
Никак не могу понять,что тут делать.
1. Попросить пользователя задать N и m.
2. Создать динамический массив размера N с типом элементов long.
3. Заполнить массив случайными числами.
4. Сделать переменную-счётчик и обнулить её.
5. В цикле сравнивать элементы массива с m. При совпадении увеличивать счётчик.
6. Вывести счётчик на экран.
7. Удалить динамический массив.
0
686 / 298 / 97
Регистрация: 04.07.2014
Сообщений: 834
06.12.2019, 15:06 3
Ну сказано же

Цитата Сообщение от _Constantine_ Посмотреть сообщение
Создайте функцию, которая вычисляет и возвращает количество элементов массива элементов типа long заданного размера N, равных m.
Т.е.
C++
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * Функция, которая вычисляет и возвращает количество элементов массива элементов
 * типа long заданного размера N, равных m.
 *
 * xs - массив
 * N - размер массива
 * m - искомое значение в массиве
 * результат: количество элементов массива равных m
 */
unsigned count_if_eq(long *xs, unsigned N, long m){
  // ...
}
0
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 27
06.12.2019, 22:32  [ТС] 4
Можно подробнее расписать саму функцию,пожалуйста
0
686 / 298 / 97
Регистрация: 04.07.2014
Сообщений: 834
06.12.2019, 22:47 5
_Constantine_,
4. Сделать переменную-счётчик и обнулить её.
5. В цикле сравнивать элементы массива с m. При совпадении увеличивать счётчик.
0
1160 / 822 / 358
Регистрация: 26.02.2015
Сообщений: 3,709
06.12.2019, 22:58 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
39
40
41
42
43
44
45
46
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
 
 
 
int main() {
 
    constexpr std::size_t SIZE{ 20 };
    std::vector<long> vec(SIZE);
 
    std::random_device rd;
    std::mt19937 gen{ rd() };
    std::uniform_int_distribution<int> dist(-20, 20);
    auto rand = std::bind(dist, gen);
 
    long value = 10;
 
    std::generate(vec.begin(), vec.end(), rand);
    std::size_t count = std::count(vec.begin(), vec.end(), value);
 
    if (count == 0) {
 
        std::cout << "There is no value " << value << " in the array\n";
 
    } else if (count == 1) {
 
        std::cout << "There is a value " << value << " in the array\n";
        
    } else {
 
        std::cout << "There are " << count << " values " << value
            << " in the array\n";
 
    }
 
    std::cout << "The array: ";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<long>(std::cout, " "));
    std::cout << '\n';
 
    return 0;
 
}
0
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 27
06.12.2019, 23:11  [ТС] 7
Цитата Сообщение от AlexVRud Посмотреть сообщение
В цикле сравнивать элементы массива с m. При совпадении увеличивать счётчик.
Не могу понять как это расписать,вот туплю видимо сильно
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
06.12.2019, 23:17 8
Цитата Сообщение от _Constantine_ Посмотреть сообщение
Не могу понять как это расписать,вот туплю видимо сильно
Либо надо взяться за учебник, если не знаете как готовить С++, либо таки победить свою лень, сесть и написать самому.
Острое ощущение, что вы просто вымораживаете, что бы вашу работу сделали за вас.
0
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 27
06.12.2019, 23:20  [ТС] 9
Цитата Сообщение от L0M Посмотреть сообщение
что бы вашу работу сделали за вас.
Возможно,просто сейчас 4 часа ночи,голова не работает,а работу сдать утром надо,хотелось бы хоть как-то понять это
0
1160 / 822 / 358
Регистрация: 26.02.2015
Сообщений: 3,709
06.12.2019, 23:53 10
Цитата Сообщение от _Constantine_ Посмотреть сообщение
работу сдать утром надо
Бери решение выше и сдавай иди.
0
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 27
07.12.2019, 01:21  [ТС] 11
Спасибо всем кто помог,все же смог написать эту программу,какой-то фигней,но всё же смог.

Добавлено через 1 минуту
Если кому интересно вот что получилось

#include "stdafx.h"
#include <iostream>
#include <time.h>
#include<stdio.h>
#include<conio.h>
using namespace std;
#define N 20//макрос размерности массива
#define _rand(min, max) ( rand() % ((max) - (min) + 1) + (min) )
int f(long* MASSIV);

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus");
srand(time(NULL));

long xs[N];//массив размерностью N
//заполнение массива случайными числами
for (int i=0; i<N; i++)
{
xs[i]=_rand(1, 5);
printf("xs[%d]=%i(%p),\n",i,xs[i],(&xs[i]));// вывод на экран массива в формате имя[индекс]
}

cout<<"кол-во элементов= "<< f(xs);//вывод на экран числа равное колличеству элементов массива числа m
getch();
return 0;
}


int f(long* MASSIV)//подпрограмма
{
int S;
S=0;
long m=3;
for(int i=0;i<N;i++)//цикл
{
if (MASSIV[i] == m)
{

S=S+1;//S=S+перечисление ячеек начиная с 0
}
}
return S;// возвращение S
}
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
07.12.2019, 02:15 12
_Constantine_, ну вот значит можете, когда сильно прижмёт?
А на счёт головы, 4 часа ночи и т.п. - отмаз дешёвый. Вам же не в 2 часа ночи задание выдали? Сами виноваты.

Я чуть подправил вашу версию. Так будет получше:
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
39
40
41
42
43
44
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include<stdio.h>
#include<conio.h>
using namespace std;
#define N 20//макрос размерности массива
#define _rand(min, max) ( rand() % ((max) - (min) + 1) + (min) )
int f(long* MASSIV, long m);
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    srand((unsigned)time(NULL));
 
    long xs[N];//массив размерностью N
    //заполнение массива случайными числами
    for (int i = 0; i < N; i++)
    {
        xs[i] = _rand(1, 5);
        printf("xs[%d]=%li(%p),\n", i, xs[i], (&xs[i]));// вывод на экран массива в формате имя[индекс]
    }
    long m = 0L;
    cout << "Введите m: ";
    cin >> m;
 
    cout << "кол-во элементов= " << f(xs, m) << endl; //вывод на экран количества элементов массива, равных числу m
    _getch();
    return 0;
}
 
// подпрограмма возвращает количество элементов в массиве MASSIV, которые равны m
int f(long* MASSIV, long m)
{
    int S = 0;   // счётчик элементов
    for (int i = 0; i < N; i++) //цикл
    {
        if (MASSIV[i] == m)
        {
            ++S;    // увеличить счётчик найденных элементов массива
        }
    }
    return S;  // возвращение S
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2019, 02:15
Помогаю со студенческими работами здесь

Вывести номера элементов списка, которые равны значению Х
Помогите программку написать. Создать односвязный линейный список, елементами которого являють...

Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Сделать программу, к-рая случайно заполняет массив А (n&lt;30) целыми значениями. Определить кол-во...

Удаление элементов массива, которые равны сумме предыдущего и следующего элементов
Нужно написать подпрограмму которая удаляет элементы массива, которые равны сумме предыдущего и...

Написать функцию, возвращающую сумму элементов массива с индексами, которые делятся на 3 без остатка
Задан одномерный массив из 300 элементов. Написать программу, которая содержит: 1)Ф-ию заполнения...

Сумма 1-го элемента массива и элементов массива, начиная с четвёртого, которые меньше или равны первому элементу
Что здесь высчитывается и какой ответ? var k,m: integer; dat: array of integer; begin dat :=...

Вычислить произведение элементов массива, которые не равны нулю
Написать программу с помощью которой можно вычислить произведение элементов массива, которые не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru