Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 18
1

Функция: найти НОД элементов массива, сумма цифр которых кратна 2

28.12.2018, 15:56. Показов 1255. Ответов 4
Метки нет (Все метки)

Найти НОД всех элементов массива, сумма цифр которых кратна 2.
В чем ошибка функции?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Z4(int* A, int N) {
    int i, nod = 0;
    for (i = 0; i < N; i++) {
        int sum=0;
        while (A[i] != 0)
        {
            sum += A[i] % 10;
            A[i] /= 10;
        }
            if (sum % 2 == 0) {
                cout << "Элемент, кратный 2:" << A[i] << endl;
                nod = Nod(A[i], nod);
            }
    }
    cout << "НОД массива:" << nod;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2018, 15:56
Ответы с готовыми решениями:

Найти индексы элементов массива сумма десятичных цифр которых кратна 5
Дан одномерный массив,сосиоящий из целых чисел. Найти и напечатать индексы тех элементов сумма...

Найти произведение элементов, у которых сумма цифр кратна 4 (N)
Доброе время суток! Хотелось бы получить помощь в следующей задаче: Пользователь вводит...

Модуль: Определить сумму элементов массива, сумма цифр которых кратна 3
Дан одномерный массив натуральных чисел. Определить сумму элементов массива, сумма цифр которых...

Найти элементы массива, сумма цифр которых кратна индексу
Найти индексы элементов массива и сами элементы, сумма цифр которых кратна индексу. ...

4
Параллельный Кот
1901 / 824 / 349
Регистрация: 25.03.2016
Сообщений: 2,040
28.12.2018, 16:04 2
A[i] после цикла while равен нулю. Вынесите суммирование цифр в отдельную функцию или используйте временную переменную.
0
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 18
28.12.2018, 16:26  [ТС] 3
Попробовала сделать вот так, но код, к примеру, число 12 тоже учитывает, как число с суммой, кратной 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
int Sum(int* A, int N) {
    int sum;
    for (int i = 0; i < N; i++) {
        sum = 0;
        while (A[i] != 0)
        { 
            sum += A[i] % 10;
            A[i] /= 10;
        } return sum;
    } 
}
 
void Z4(int* A, int N) {
    int i, nod = 0;
    for (i = 0; i < N; i++) {
        int sum1 = Sum(A, N);
            if (sum1 % 2 == 0) {
                cout << "Элемент, сумма цифр которого кратна 2:" << A[i] << endl;
                nod = Nod(A[i], nod);
            }
    }
    cout << "НОД массива:" << nod;
}
0
Параллельный Кот
1901 / 824 / 349
Регистрация: 25.03.2016
Сообщений: 2,040
28.12.2018, 16:37 4
Лучший ответ Сообщение было отмечено MWitc4 как решение

Решение

MWitc4, не очень понял, что вы попытались сделать. Имел в виду вынести в отдельную функцию суммирование цифр одного числа (то, что делается в цикле while). Как-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int sumDigits(int x) {
    int sum = 0;
    while (x != 0) {
        sum += x % 10;
        x /= 10;
    }
    return sum;
}
 
void Z4(int* A, int N) {
    int nod = 0;
    for (int i = 0; i < N; i++) {
        if (sumDigits(A[i]) % 2 == 0) {
            cout << "Элемент, сумма цифр которого кратна 2: " << A[i] << endl;
            nod = Nod(A[i], nod);
        }
    }
 
    cout << "НОД массива: " << nod;
}
1
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 18
28.12.2018, 16:40  [ТС] 5
Большое спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2018, 16:40

Найти и вывести количество пар элементов массива, произведение которых нечётно, а сумма не кратна 5
1) Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0...

Дан одномерный массив натуральных чисел.Определить сумму элементов массива,сумма цифр которых кратна 3.Все вспомогательные алгоритмы оформить в отдель
Дан одномерный массив натуральных чисел.Определить сумму элементов массива,сумма цифр которых...

Удалить из массива числа сумма цифр которых кратна 7
Необходимо удалить из массива числа сумма цифр которых кратна 7. Проблема состоит в том, что после...

Переписать из массива Y все элементы сумма цифр которых кратна 3-ем в массив Z
Вот что я хотел сделать, но ничего не выходит, помогите сделать. Нужно через функцию и если можно...


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

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

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