• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Курсовик по С++

  • Автор темы bul04ka
  • Дата начала
B

bul04ka

Даны натуральное число n, целые числа a1...an. Определить количество и сумму тех членов данной последовательности, которые делятся на 5 и не делятся на 7.


Суть проблемы в том, что на лекциях объясняют очень скудно, на практике и не пытаются объяснить, а самому нету времени разбираться. Оплачу голосами "Вконтакте", цена договорная.

Сделать нужно до 22.12.2010
 
R

Rififi

C++:
#include <algorithm>
#include <functional>
#include <iostream>

#include <locale>

/*
Даны натуральное число n, целые числа a1...an. Определить количество и сумму тех членов данной последовательности, которые делятся на 5 и не делятся на 7. 
*/

struct match : public std::unary_function<int, bool>
{
bool operator()(const int i) const
{
return !(i % 5) && (i % 7);
}
};

template <typename ForwardIterator, typename T, typename _F1>
T accumulate_if(ForwardIterator first, ForwardIterator last, T val, _F1 f1)
{
for (; first != last; ++first)
if (f1(*first))
val = (T)(val + *first);
return val;
}

template <typename T, size_t N>
void apply(const T (&arr)[N])
{
std::cout << "Number of elements: " << std::count_if(arr, arr+N, match()) << std::endl;
std::cout << "Sum of elements: " << accumulate_if(arr, arr+N, 0, match()) << std::endl;
}

int main()
{
setlocale(LC_ALL, "");

const int arr[] = {1,2,3,4,5,6,7,8,9,10,30,35,40};
apply(arr);

return 0;
}

Проверка:

 
I

ierofant

Оплачу голосами "Вконтакте", цена договорная.
:unsure: Ну ты шутница!

Ещё как вариант (Rififi , когда я начал писать ещё не видел твоего ответа)

C++:
#include <iostream>

int main ()
{
int n;
std::cout << "Введите n: ", std::cin >> n;

int mas [n];
for (int i = 0; i < n; i++) std::cout << "Введите a" << i << ": ", std::cin >> mas [i];

int m = 0, sum = 0;
for (int i = 0; i < n; i++)
if ((mas [i] % 5) == 0 && (mas [i] % 7) != 0)
{
m++;
sum += mas [i];
}
std::cout << "Кол-во искомых членов: " << m << std::endl;
std::cout << "Их сумма: " << sum << std::endl;


return 0;
}
 
B

bul04ka

у меня Borland C++ в синем DOS'овском окне, то, что вы написали, это для Builder'а 6
 
I

ierofant

То что я написал, это код соответcтвующий принятому стандарту С++. Я лично компилил его в gcc.
 
R

Rififi

bul04ka

у меня Borland C++ в синем DOS'овском окне

я знаю только что это что-то древнее, и, наверное, жуткое. (Ж
 
B

bul04ka

Rififi
вы правы, это дикий ужас
паскаль в этой среде и то интереснее и более понятнее
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!