Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83

Найти в массиве количество четных чисел, сумма цифр в которых не превышает заданного числа P

27.12.2016, 16:20. Показов 1986. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти количество четных чисел, сумма цифр в которых не превышает заданного числа P.
При вводе Р=11 все считает правильно , но стоит ввести другое число, то количество считает не правильно.Что не так ?
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
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
 
int Count(int *a, int P);
 
int main()
{
    int a[5] = {345,2620,14492,1450,12206};
    int P;
    cout << "LABA_3_ZAD_1" << endl;
    cout << "P="; cin >> P;
    for (int i = 0; i<5; i++)
        cout << a[i] << endl;
        cout << "\n-------------" << endl;
 
    cout << "count=" << Count(a, P) << endl;
    system("pause");
}
 
 
int Count(int *a, int P)
{
    int d, Sum, counter = 0;
 
    for (int i = 0; i<5; i++)//Идем по всем элементам массива
    {
        Sum = 0;
        d = a[i];
        if (!(a[i] % 2))//Определяем четность
        {
            while (d % 10)
            {
                Sum += d % 10;
                d /= 10;
            }
            if (Sum <= P)
            {
                counter++;
                cout << a[i] << endl;
            }
        }
 
    }
    return counter;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2016, 16:20
Ответы с готовыми решениями:

Найти количество четных чисел, сумма цифр в которых не превышает заданного числа P
Помогите пожалуйста решить задачу! Прикрепил.

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

Найти сумму нечётных чисел последовательности , количество цифр в которых не превышает заданного числа P
Пусть имеется последовательность произвольных целых ненулевых чисел, завершающаяся числом 0 (число 0 в последовательность не входит). ...

8
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
27.12.2016, 16:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    vector<int>v {345,2620,14492,1450,12206,10,13,14};
    int p;
    cin>>p;
    cout<<count_if(v.cbegin(),v.cend(),[&p](const int &x) {
        int sum=0;
        string s1=to_string(x);
        for_each(s1.cbegin(),s1.cend(),[&sum](const char &c) {
            string cc {c};
            sum+=stoi(cc);
        });
        return x%2==0 && sum<=p;
    });
}
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83
27.12.2016, 16:37  [ТС]
Peoples, а мою как то можно чтобы через функцию осталось нахождение ?

Добавлено через 32 секунды
изменить*
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.12.2016, 16:50
Замени в 33 строке:
C++
1
while (d > 0)
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83
27.12.2016, 16:57  [ТС]
likehood, помогло частично, если скажем ввести 50 должны все числа почситать но нет , не могу понять в чем ошибка?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.12.2016, 16:59
Так у тебя первое число нечётное, вот оно и не учитывается.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.12.2016, 17:14
Peoples, создавать строку из одного символа, чтобы потом вызвать stoi - явно не нужно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
 
int main()
{
    const int a[] = {345, 2620, 14492, 1450, 12206, 10, 13, 14}, p = 11;
    std::cout << std::count_if(std::begin(a), std::end(a), [&p](const int &x)
    {
        const std::string s = std::to_string(x);
        return std::accumulate(s.begin(), s.end(), 0) - '0' * s.length() <= p;
    });
}
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
27.12.2016, 17:29
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
#include <iostream>
 
int main()
{
  unsigned short result = 0;
  unsigned short sum = 0;
  unsigned short backup = 0;
 
  const unsigned short SIZE = 5;
  const unsigned short P = 10;
 
  unsigned short array[SIZE] = {16, 32, 64, 128, 256};
 
  for (size_t i = 0; i < SIZE; i++) {
    sum = 0;
    if (array[i] % 2 == 0) { // Проверить на четность
      backup = array[i]; // Записать число в отдельную переменную
      sum += backup % 10; // Сложить последнюю цифру с суммой
      while (backup /= 10) { // Пока есть цифры в числе
        sum += backup % 10;   // Складываем их (с конца)
      }
      if (sum >= P) {
        std::cout << array[i] << " "  << sum << std::endl;
        ++result;
      }
    }
  }
 
  std::cout << "Result: " << result << std::endl;
 
  return 0;  
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.12.2016, 17:39
С проверкой чётности
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
 
int main()
{
    const int a[] = {345, 2620, 14492, 1450, 12206, 10, 13, 14}, p = 11;
    std::cout << std::count_if(std::begin(a), std::end(a), [&p](const int &x)
    {
        const std::string s = std::to_string(x);
        return !(x & 1) && std::accumulate(s.begin(), s.end(), 0) - '0' * s.length() <= p;
    });
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2016, 17:39
Помогаю со студенческими работами здесь

В матрице найти количество строк, сумма модулей элементов которых не превышает заданного числа
помогите пожалуйста очень надо решить задачу В квадратной матрицы действительных чисел (8x8) найти количество строк, сумма модулей...

В заданном массиве найти количество элементов, для которых отклонение от заданного числа А не превышает величины Р
В заданном массиве найти количество элементов, для которых отклонение от заданного числа А не превышает величины Р.

Написать программу, которая высчитывает количество четных чисел, не превышающих заданного значения, сумма цифр которых также является четным числом.
Написать программу с использованием подпрограмм. В подпрограммах не должно присутствовать ввода исходных данных (например, с помощью...

В целочисленном массиве размером n*n удалить строки, в которых сумма элементов не превышает заданного числа
Помогите пожалуйста с заданием, в массиве размером n*n, элементы которого являются целыми числами, удалить все строки, в которых сумма...

Найти n первых простых чисел, сумма цифр у которых меньше заданного числа
Помогите написать программу! Условие: найти n первых простых чисел, сумма цифр у которых меньше заданного m.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru