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

Почему не работает код? - C++

17.08.2016, 21:34. Просмотров 256. Ответов 4
Метки нет (Все метки)

можете подсказать почему мой код не работает правильно ???

задача вот в чем

Вход программы имеет следующий формат. Сначала вводится N > 0- количество чисел в последовательности А. Далее идут N целых чисел. После этого следует число M > 0 - количество чисел в последовательности В. Далее следуют M целых положительных числа. Требуется найти и напечатать те числа из последовательности А, которые делятся на все числа из последовательности B. Сначала вывести количество таких чисел, а на следующей строчке сами эти числа, разделенные пробелом (можно и в конце пробел ставить).

Требование. Посчитайте НОК чисел второй последовательности. Напишите функции int gcd(int a, int b) и int lcm(int a, int b). Можете также написать функцию int lcm(const std::vector<int> & numbers), которая считает НОК всей последовательности. Да, в C++ несколько функций могут иметь одно и то же название, если у них разные количество или типы аргументов.

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
#include <iostream>
#include <vector>
 
int gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
int lcm(int a, int b)
{
    if (a % b == 0)
        return a;
    if (b % a == 0)
        return b;
    return gcd(b, a % b);
}
int lcm(const std::vector<int>& numbers)
{
    int LCM;
    for (int i = 0; i + 1 < numbers.size(); ++i)
    {
        if (numbers.size() == 1)
            LCM = numbers[i];
        LCM = lcm(numbers[i], numbers[i + 1]);
    }
    return LCM;
}
 
int main()
{
    int n;
    std::cin >> n;
    std::vector<int>v1(n);
    for (int i = 0; i < n; ++i)
        std::cin >> v1[i];
    
    int m;
    std::cin >> m;
    std::vector<int>v2(m);
    for (int i = 0; i < m; ++i)
        std::cin >> v2[i];
 
    std::vector<int> v;
    for (int i = 0; i < n; ++i)
        {
        if (v1[i] % lcm(v2) == 0)
            v.push_back(v[i]);
        }
    std::cout << v.size() << std::endl;
    for (int i = 0; i < v.size(); ++i)
        std::cout << v[i] << std::endl;
}
примеры для проверки ))

1)
Ввод
5
100 200 150 0 -25
4
5 50 25 20

Вывод

3
100 200 0


2)
Вход
5
1 2 3 4 5
1
2


Вывод

2
2 4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2016, 21:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Почему не работает код? (C++):

Почему не работает код на других компьютерах (на моем работает)?
вот задание: построить ф-ю: на вход поступают 2 строки, на выходе 1 строка, по следующим правилам: в 1 строке удваиваются все гласные,...

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

Почему код не работает?
#include &lt;ctime&gt; #include &quot;std_lib_facilities.h&quot; int main() { vector &lt;int&gt; aaa; srand(time(0)); int i= 1+rand() % 9; int...

Почему не работает код?
Может кто найдёт ошибку: #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include &lt;windows.h&gt; ...

Почему код не работает?
#include &lt;iostream&gt; using namespace std; unsigned long double* remove(unsigned long double* Arr, size_t* Size) { ...

Почему не работает код?
подскажите пожалуйста почему мой код не работает. от меня требуется отсортировать целые числа и напечатать с начало четные, потом нечетные...

4
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
17.08.2016, 22:11 #2
Прочитайте, что такое НОК и как его считают.
0
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
18.08.2016, 16:52  [ТС] #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Прочитайте, что такое НОК и как его считают.
Ну я знаю как считать... но тут не тока НОК считать... я просто не могу понять в чем ощибка
0
Slip.
92 / 92 / 33
Регистрация: 17.03.2012
Сообщений: 536
Завершенные тесты: 1
18.08.2016, 17:18 #4
Не работает, потому что вы не указываете размер вектору v.
Дальше разберитесь с тем, что будет, если у вас n будет больше m и наоборот. Это тоже, видимо, надо будет учесть.
0
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
18.08.2016, 17:42 #5
Цитата Сообщение от Realmucho Посмотреть сообщение
Ну я знаю как считать...
А почему не считаете? Программа работает так, как ее написали (а так как вы знаете или как вам надо)
0
18.08.2016, 17:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2016, 17:42
Привет! Вот еще темы с решениями:

почему код не работает?
помогите пожалуйста, почему у меня код не работает? Ввожу &quot;х&quot;, потом погрешность, а arth всегда =0. приложил Документ WORD, там...

Почему работает данный код?
В разделе &quot;Комбинаторика&quot; ( http://www.cyberforum.ru/combinatorics/thread572992.html ) задали вопрос: Сколько четырехзначных чисел можно...

Почему этот код работает?
Почему этот код работает без единого предупреждения? Мы заведомо вылазим за границу массива. Известно что если размерность массива n,...

Почему правильно работает код?
В первом файле 5 слов, во втором - 10. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { FILE *f1, *f2; f1 =...


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

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

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