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

Поиск простых чисел и формирование из них массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифрование любого типа данных http://www.cyberforum.ru/cpp-beginners/thread537390.html
Всем привет у меня вопрос по теории. Написал консольное приложение которое изначально как я предполагал будет способно зашифровать текст в *.txt формате. В программе я использовал методы простой...
C++ метод дихотомии Найти все корни функции f(x) на интервале методом дихотомии с погрешностью 10^-4. f(x)=cos^2(x)-sin^2(x)/ помогите плиз написать)) http://www.cyberforum.ru/cpp-beginners/thread537369.html
Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. C++
String11. Дана непустая строка S. Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу.Помогите решить,кто знает!
Структура - прибыль торговых центров C++
ЗАДАЧА Сверхприбыль торговых центров: *название товара *название магазина, в котором продается товар *цена товара в магазине (грн.) *средняя оптовая цена товара (грн.) *функция, возвращающая...
C++ Программная реализация алгоритма бинарного поиска http://www.cyberforum.ru/cpp-beginners/thread537319.html
Всем привет! Помогите составить программу Задача: Выполнить программную реализацию алгоритма бинарного поиска. Код я нашел, но при компиляции появляется ошибка на отсутствие фала bios.h, и на...
C++ Вывести на печать элементы массива, значения которых не принадлежат промежутку Помогите пожалуйста решить задачу на СИ. В одномерном массиве, состоящем из n вещественных элементов, – вывести на печать элементы массива, значения которых не принадлежат промежутку . Значения... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,811
03.04.2012, 14:11
Цитата Сообщение от fasked Посмотреть сообщение
Вопрос только в том, как возвращать размер нового массива
Классическое "параметр-результат" например
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
#include <stdio.h>
#include <stdlib.h>
    
int is_even(int a) { return ! ( a & 1 ); }
int is_mul3(int a) { return ! ( a % 3 ); }
 
int * tested_values(const int * src, size_t size, size_t * values, int (*func)(int)){
    int * ret = (int*)malloc(sizeof(int) * size);
    if ( ! ret )
        return NULL;
    
    *values = 0;
    
    while ( size-- ){
        if ( func(*src) )
            ret[(*values)++] = *src;
        ++src;
    }
    
    return (int*)realloc(ret, sizeof(int) * *values);
}
 
void dump(const int * arr, size_t size) { 
    while ( size-- ) 
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n'); 
}
 
#define SIZE 10
    
int main(void){
    int arr[SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int * ptr;
    size_t count;
    
    printf("Array:\n");
    dump(arr, SIZE);
    
    printf("Even only:\n");
    if ( ( ptr = tested_values(arr, SIZE, &count, is_even) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    else if ( count == 0 ){
        printf("Not found.\n");
    }
    else {
        dump(ptr, count);
        free(ptr);
    }
    
    printf("Multply by 3:\n");
    if ( ( ptr = tested_values(arr, SIZE, &count, is_mul3) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    else if ( count == 0 ){
        printf("Not found.\n");
    }
    else {
        dump(ptr, count);
        free(ptr);
    }
    
    exit(0);
}
Hqw33, простые числа как определять, тут на форуме есть, ну и функции в массив пихать и по введённому пользователем номеру (ака меню) их оттуда извлекать - сами как-нибудь...

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
вернуть через значение функции указатель NULLтерминальный указатель на массив указателей на элементы основного массива тогда положение NULL в массиве указателей будет однозначно определять размеры обоих массивов (основного и вспомогательного, то есть массива указателей)
Это мантра какая-то?

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