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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
And555
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 3
#1

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. - C++

11.04.2012, 08:49. Просмотров 1448. Ответов 3
Метки нет (Все метки)

Пишу в Microsoft Visual Studio ->Win32 Console application ->C++.
Условие:Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. Первая функция ищет простые числа и заносит их в новый массив, вторая – все числа кратные трем, третья – все четные числа. В программе создайте массив из 3-х указателей на эти функции. Добавьте меню, в котором пользователь может выбрать желаемую операцию.

Помогите найти ошибку, и соответственно исправить ее.

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <math.h>
#include <stdlib.h>
#include <iostream>
bool is_prime( int n ) {
    double sqrt_n = sqrt( n );
    for ( int i = 2; i <= sqrt_n; i++) {
        if (n % i == 0) {
              return false;
        }
    }
    return true;
}
int * get_primes( const int * array, int count, int & outCount ) {
    int * result = new int[ count ];
    outCount = 0;
    for ( int i = 0; i < count; i++ ) {
        if ( is_prime( array[ i ] ) ) {
            result[ outCount ] = array[ i ];
            outCount++;
        }
    }
    return result;
}
int * get_divisible_3( const int * array, int count, int & outCount ) {
    int * result = new int[ count ];
    outCount = 0;
    for ( int i = 0; i < count; i++ ) {
        if ( array[ i ] % 3 == 0 ) {
            result[ outCount ] = array[ i ];
            outCount++;
        }
    }
    return result;
}
int * get_even( const int * array, int count, int & outCount ) {
    int * result = new int[ count ];
    outCount = 0;
    for ( int i = 0; i < count; i++ ) {
        if ( array[ i ] % 2 == 0 ) {
            result[ outCount ] = array[ i ];
            outCount++;
        }
    }
    return result;
}
typedef int * (*function_t)( const int * , int , int & );
function_t functions[ 3 ] = { get_primes, get_divisible_3, get_even };
const int COUNT = 100;
int array[ COUNT ];
void print_array( int * array, int count ) {
    for ( int i = 0; i < count; i++ ) {
        std::cout << array[ i ] << " ";
    }
    std::cout << std::endl;
}
int main()
{
    for ( int i = 0; i < COUNT; i++ ) {
        array[ i ] = rand() % 100;
    }
    std::cout << "init array: " << std::endl;
    print_array( array, COUNT );
    unsigned int code;
    do {
        std::cout << "0 - prime, 1 - div 3, 2 - even. 3 - exit" << std::endl;
        std::cin >> code;
        if ( code < 3 ) {
            int outCount;
            int * p = functions[ code ]( array, COUNT, outCount );
            print_array( p, outCount );
            delete []p;
        }
    } while( code != 3 );
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 08:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. (C++):

Функция принимает указатель на void и возвращает указатель на int - C++
Запишите прототип функции, которая принимает указатель на void и возвращает указатель на int.

Функция принимает указатель на динамический массив и возвращает его же, но без чисел полиндромов (читается с обоих сторон одинаково - 234432) - C++
Вот мое решение, подскажите, пожалуйста, что изменить, чтобы заработала программа: # include &lt;iostream&gt; # include &lt;stdlib.h&gt; #...

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Реализовать функцию, которая принимает массив и возвращает количество простых чисел в нем - C++
Ребят , есть задачи , а в частности нужно с помощью функций и деления по остатку (%) написать несколько программ , а именно : 1)...

Написать функцию, получающую указатель на массив и возвращает сумму и произведение его элементов - C++
Надо написать функцию, которая получает указатель на массив и его размер, и возвращает сумму и произведение его элементов в двух ...

Как вернуть из функции указатель на массив элементов класса - C++
Здравствуйте! Возникла такая проблема. Есть класс, созданный мной. Функция формирует массив элементов этого класса (массив...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
11.04.2012, 09:06 #2
В чем заключается ошибка? И раз вы уж пишите на С++ а не на Си то не
C++
1
2
#include <math.h>
#include <stdlib.h>
а
C++
1
2
#include <cmath>
#include <cstdlib>
And555
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 3
11.04.2012, 12:54  [ТС] #3
Увы, проблема не в этом...
Миниатюры
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив.  
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
11.04.2012, 19:34 #4
Дело не в программе а в IDE, и скорей всего в настройках проекта. У меня ваша программа запускается, правда я не проверял выводимые результаты, попробуйте создать пустой проект консольного приложения и вставить туда ваш код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 19:34
Привет! Вот еще темы с ответами:

Функция формирует массив и возвращает указатель на него - C++
Задание: написать функцию с аргументами: вещественное х, целое n. Функция формирует массив у: уk=\frac{{x}^{2k}}{k!} k=0,1,..,n-1 и...

Как функция возвращает указатель на структуру в массив указателей - C++
Друзья, следующий вопрос, у меня есть функция, которая: создает указатель на структуру-&gt; выделяет память-&gt; заполняет из файла-&gt; и...

Написать функцию, которая принимает указатель на небольшой 2х мерный массив int значениями - C++
Подскажите пожалуйста, надо написать функцию, которая принимает указатель на небольшой 2х мерный массив int значениями (5 на 2) и сортирует...

Вернуть указатель на новый массив - C++
Всем добрый вечер. Помогите пожалуйста разобраться. В задаче необходимо написать функцию, которая добавляет в двумерный динамический...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.04.2012, 19:34
Ответ Создать тему
Опции темы

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