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

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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
вы правы, это дикий ужас
паскаль в этой среде и то интереснее и более понятнее
 
Мы в соцсетях:

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