Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция и одномерные массивы с условием 
:(
    Опции темы
Андрюшатина
Дата 4.2.2015, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 28.11.2014

Репутация: нет
Всего: нет



Доброй ночи.
Пожалуйста помогите
Начали новую тему, но не могу понять, какой нужно написать алгоритм.

Задача: Функция принимает два одномерных массива и выводит на экран все общие элементы. Функция должна вернуть true, в случае если общие элементы были найдены или false в противном случае

P.S. 
Нужно использовать только #include <iostream>
Извините, что без исходника. Вообще не пойму, что написать((((
PM MAIL   Вверх
konshyn
Дата 4.2.2015, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Код

#include <iostream>
#include <cstdlib> //нужен для rand() чтобы не вводить массив вручную
#include <ctime> // нужен для time(NULL) для инициализации рандомных значений

const int N = 100; // общая длина массивов сделана для упрощения кода, если нужна разная длина,
                  // то просто передавай нужные значения в функции и измени, соответственно, места в коде на нужные значения
const int div_mod = 137;

int get_similar_from_array(int *src, int *dst) { // возвращает количество различных элементов из массива src, массив dst хранит различные элементы
    int num = 1;
    dst[0] = src[0];

    for (int i = 1; i < N; i++) {
        bool flag = true;
        for (int j = 0; j < num; j++)
            if (dst[j] == src[i]) {
                flag = false;
                break;
            }
        if (flag) {
            dst[num] = src[i];
            num++;
        }
    }
    return num;
}

bool print_similar_elements(int *a, int *b) {
    int no_similar_a[N] = {0};
    int no_similar_b[N] = {0};
    int num_a;
    int num_b;

    num_a = get_similar_from_array(a, no_similar_a);
    num_b = get_similar_from_array(b, no_similar_b);

    // вывод различных элементов в массивах
    /* 
    std::cout << "First array without similar elements:\n";
    for (int i = 0; i < num_a; i++) {
        std::cout << no_similar_a[i] << " ";
    }
    std::cout << std::endl << std::endl;

    std::cout << "Second array without similar elements:\n";
    for (int i = 0; i < num_b; i++) {
        std::cout << no_similar_b[i] << " ";
    }
    std::cout << std::endl << std::endl;
    */

    int similar_counter = 0;
    std::cout << "Similar elements from arrays\n";    
    for (int i = 0; i < num_a; i++)
        for (int j = 0; j < num_b; j++)
            if (no_similar_a[i] == no_similar_b[j]) {
                std::cout << no_similar_a[i] << " ";
                similar_counter++;
            }
    if (similar_counter == 0) 
        std::cout << "Nothing";
    std::cout << std::endl;
    
    return similar_counter;
}


int main() {
    int a[N];
    int b[N];
    srand(time(NULL));
    for (int i = 0; i < N; i++) {
        a[i] = rand() % div_mod;
        b[i] = rand() % div_mod;
    }

    std::cout << "First array:\n";
    for (int i = 0; i < N; i++)
        std::cout << a[i] << " ";
    std::cout << std::endl << std::endl;

    
    std::cout << "Second array:\n";
    for (int i = 0; i < N; i++)
        std::cout << b[i] << " ";
    std::cout << std::endl << std::endl;

    std::cout << "return ";
    print_similar_elements(a, b) ? std::cout << "true\n" : std::cout << "false\n";
    return 0;
}



--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.