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

Тема в разделе "C/C++/C#", создана пользователем bul04ka, 19 дек 2010.

  1. bul04ka

    bul04ka Гость

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


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

    Сделать нужно до 22.12.2010
     
  2. Rififi

    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;
    }
    Проверка:

    http://codepad.org/zv7RDxUs
     
  3. ierofant

    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;
    }
     
  4. bul04ka

    bul04ka Гость

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

    ierofant Гость

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

    Rififi Гость

    bul04ka

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

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

    ierofant Гость

    Как же у нас любят издеваться над людьми... :facepalm:
     
  8. bul04ka

    bul04ka Гость

    Rififi
    вы правы, это дикий ужас
    паскаль в этой среде и то интереснее и более понятнее
     
Загрузка...

Поделиться этой страницей