Вычислить сумму тех его элементов, значения которых есть четные числа

fogfog

Буду очень благодарен 1)Задан одномерный числовой массив. Вычислить сумму тех его элементов, значения которых есть четные числа.
8 ответов

fogfog

fogfog, вот тебе первое задание
#include <iostream>
#include <iomanip>
#include <vector>
#include <cstdlib>
#include <time.h>
#include <algorithm>
#include <iterator>
#include <numeric>
using namespace std;
 
class sum_odd{
    private:
        int sum;
 
    public:
        sum_odd():sum(0) {}
 
        void operator() (int elem){
            if(elem % 2 == 0)
                sum += elem;
        }
 
        int get_sum(){
            return sum;
        }
};
 
void ramdom(int &elem){
    elem = -20 + rand() % 41;
}
 
int main()
{
    int size;
    cout << "Enter the size of the array: ";
        cin >> size;
 
    srand(time(NULL));
    vector<int> coll(size);
    for_each(coll.begin(), coll.end(), ramdom);
 
    cout << "Array: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
 
    sum_odd odd;
    odd = for_each(coll.begin(), coll.end(), sum_odd());
    cout << "\nSum of odd items: " << odd.get_sum();
 
    cout << "\n\n";
    return 0;
}
fogfog, второе задание не совсем понял, формулировка странная.


fogfog

Большое спасибо, вот второе задание Дана квадратная матрица порядка M. заменить нулями элементы, лежащие одновременно выше ниже главной диагонали (включая эту диагональ) и выше ниже побочной диагонали (также включая эту диагональ).


fogfog

fogfog, как понять выше ниже и включая, тогда получается всю матрицу заполнить нулями?fogfog, а, тупонул, т.е. если элемент с одинаковыми значениями есть выше и ниже, то заменить нулями, понял, ок.fogfog, я так понял диагонали по любому зануляются, если нет скажи, вот мой вариант
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>
using namespace std;
 
int main()
{
    vector<vector<int> > coll;
    vector<int> row, vec_sum;
 
    int str, stb, value;
    cout << "Enter the number of lines: ";
        cin >> str;
 
    cout << "Enter the number of columns: ";
        cin >> stb;
 
    cout << "\nEnter the matrix:\n";
    for(int i = 0; i < str; ++i){
        for(int j = 0; j < stb; ++j){
            cout << "Enter the matrix element[" << i + 1 << "][" << j + 1 << "]:";
                cin >> value;
            row.push_back(value);
        }
 
        coll.push_back(row);
        row.clear();
    }
 
    cout << "\nMatrix:\n";
    for(int i = 0; i < str; ++i){
        cout << "\n\t";
        for(int j = 0; j < stb; ++j){
            cout << setw(3) << coll[i][j] << ' ';
        }
    }
 
    /*относительно главной диагонали*/
    for(int k = str - 1; k >= 0; --k){
        for(int s = 0; s <= k; ++s){
            for(int i = 0; i < str; ++i){
                for(int j = i; j < stb; ++j){
                    if(coll[k][s] == coll[i][j]){
                        coll[i][j] = 0;
                        coll[k][s] = 0; 
                    }
                }
            }
        }
    }
 
    /*относительно побочной диагонали*/
    for(int k = str - 1, f  = 0; k >= 0; --k, ++f){
        for(int s = f; s < stb; ++s){
            for(int i = 0; i < str; ++i){
                for(int j = 0; j < stb - i; ++j){
                    if(coll[k][s] == coll[i][j]){
                        coll[i][j] = coll[k][s] = 0;
                    }
                }
            }
        }
    }
 
    cout << "\n\nNew matrix:\n";
    for(int i = 0; i < str; ++i){
        cout << "\n\t";
        for(int j = 0; j < stb; ++j){
            cout << setw(3) << coll[i][j] << ' ';
        }
    }
 
    cout << "\n\n";
    return 0;
}


fogfog

Задан одномерный числовой массив. Вычислить сумму тех его элементов, значения которых есть четные числа. уже создавал тему с этим заданием но мне нужна программа в более простом варианте с простым и коротким решениемвот вроде написал начало, закончите если правильно пожалуйста
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <math.h>
#include <tchar.h>
 
void main(void)
{
int a[10],k(0);
for (int i = 0; i < 10; i++) 
{
cout«"Vvedite element massiva а["«i«"]\n";
cin»a[i];
}
for (int i = 0; i < 10; i++) 
{
if( a[i]%2==0)


fogfog

fogfog, надо не плодить темы с одним и тем же заданием, а читать правила форума. как новичку - предупреждение.


fogfog

#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    int n, sum = 0;
    cout << "Enter n: ";
    cin >> n;
    int *a = new int [n];
    cout << "Enter array: ";
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < n; i++)
        if (a[i] % 2 == 0) sum+=a[i];
    cout << "Sum = "<< sum;
    getch();
 }


fogfog

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <math.h>
#include <tchar.h>
 
using namespace std;
 
void main(void)
{
   int a[10],k(0);
   for (int i = 0; i < 10; i++) 
   {
      cout«"Vvedite element massiva а["«i«"]\n";
      cin»a[i];
   }
   for (int i = 0; i < 10; i++) 
   {
      if( a[i]%2==0){
         k+=a[i]
      }
   }
   cout << k << endl
   return 0;
}


fogfog

вот второе задание Дана квадратная матрица порядка M. заменить нулями элементы, лежащие одновременно выше ниже главной диагонали (включая эту диагональ) и выше ниже побочной диагонали (также включая эту диагональ).
это задание пожалуйста тоже в простом коротком варианте