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

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

27.12.2016, 16:20. Показов 1946. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru