Форум программистов, компьютерный форум CyberForum.ru

В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K. - C++

Восстановить пароль Регистрация
 
Максим123123
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 16
30.01.2014, 09:51     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K. #1
Помогите пожалуйста решить, и если не трудно распишите каждую строчку что тут сделано и за что отвечает эта команда

В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 09:51     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K.
Посмотрите здесь:

В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному К C++
Одномерные массивы (Найти сумму тех элементов, которые кратны данному К) C++
C++ Дано натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7
C++ Найти сумму индексов тех элементов массива, которые кратны трем
C++ В массив B[n] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному f
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ko_Sergey
2 / 2 / 0
Регистрация: 17.01.2014
Сообщений: 26
30.01.2014, 10:39     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K. #2
Максим, вот посмотри:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
void main()
{
    setlocale(0,"russian");     //для отображения русских символов в консоли
    int a[8]={1,2,3,4,5,6,7,8}; //определение массива
    int k,sum=0;                //определение переменных
    cout<<"введите к:"<<endl;   //cout-вывод строки на консоль,endl-переход на новую строку(для удобства)
    cin>>k;                     //cin-для ввода 
    cout<<"весь массив:"<<endl;
    for(int i=0;i<8;i++)        //цикл для прохода по каждому элементу от 0 до 7 включительно(т.к. в данном случае у нас 8 элементов)
    {
        if(a[i]%k==0)           //проверяем на кратность текущий элемент массива
            sum=sum+a[i];       //если кратно, считаем сумму текущего элемента массива с предыдущим результатом 
        cout<<a[i]<<" ";        //выводим текущий элемент на консоль(для всех элементов)
    }
    cout<<endl<<"сумма элементов кратных 'k' равна "<<sum<<endl;//выводим результат
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
30.01.2014, 17:18     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K. #3
Решение в одну строчку:
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <numeric>
 
int main()
{
    const int a[] = {1, 2, 3, 4, 5, 6, 7, 8}, k = 3;
    std::cout << std::accumulate(std::begin(a), std::end(a), 0, [k](const int x, const int y) {return x + y * !(y % k); });
}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.02.2014, 22:29     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K. #4
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
#include <iostream>
using namespace std;
 
int main()
{
    int N, sum = 0, K;
    cout << "A[N], enter N: "; cin >> N; //Вводим значение N
    cout << "Enter K: "; cin >> K; //Вводим значение K
    cout << endl;
    int* A = new int[N]; //Создаём динамический одномерный массив из N элементов
    for(int i = 0; i < N; i++) //Цикл заполнения массива
    {
        cout << "#" << i + 1 << " - ";
        cin >> A[i]; //Вводим элементы массива
        while(A[i] <= 0) //Если введено число меньше или равное 0,
        {   
            cout << "Number must be greater then null!\n"; //выводим сообщение.
            cout << "#" << i + 1 << " - ";
            cin >> A[i]; //Вводим заново число.
        }//Цикл продолжается до тех пор пока не будет введено натуральное число.
        if(A[i] % K == 0) //Проверяем наличие элементов кратных K
            sum += A[i]; //Если таковые имеются прибавляем к sum
    }
    
    //Если sum равен 0, выводим сообщение There is no such numbers!
    (sum == 0)? cout << "\nThere is no such numbers!\n"
    //В противном случае, выводим sum
              : cout << "\nSum is: " << sum << endl;
    
    delete [] A; //Освобождаем память
    
    system("pause");
    return 0;
}
Yandex
Объявления
05.02.2014, 22:29     В массив A[N] занесены натуральные числа.Найти сумму тех элементов, которые кратны данному K.
Ответ Создать тему
Опции темы

Текущее время: 05:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru