Как найти сумму четных элементов матрицы

0 / 0 / 3

Регистрация: 02.12.2015

Сообщений: 19

1

Найти сумму чётных элементов матрицы

03.12.2015, 16:24. Показов 2199. Ответов 3


Студворк — интернет-сервис помощи студентам

Здравствуйте, помогите, пожалуйста, написать программу на с++, которая будет находить сумму чётных элементов двумерного массива.



0



Тамика

Котовчанин

942 / 482 / 200

Регистрация: 16.02.2010

Сообщений: 3,338

Записей в блоге: 37

03.12.2015, 16:30

2

АнастасияКарауш, ХОРОШО, НАПИШЕМ, ТОЛЬКО НЕ НУЖНО КРИЧАТЬ.

Добавлено через 59 секунд

C++
1
2
3
4
5
6
7
    for (int i = 0; i < size_x; ++i)
        for (int j = 0; j < size_y; ++j)
        {
            array[i][j] = rand()%10;
            if (array[i][j] % 2 == 0)
                sum += array[i][j];
        }



2



GbaLog-

Любитель чаепитий

3737 / 1796 / 563

Регистрация: 24.08.2014

Сообщений: 6,014

Записей в блоге: 1

03.12.2015, 16:56

3

Тамика, Мне кажется, что тут проверка

C++
1
if (array[i][j] % 2 == 0)

является ли само число по этому адресу чётным, а ему надо, чтобы номер элементов чётный был? Или я не прав?



1



0 / 0 / 3

Регистрация: 02.12.2015

Сообщений: 19

03.12.2015, 19:00

 [ТС]

4

Тамика,
Но… Я ведь и не кричала…

Спасибо Вам, огромное.



0



Дана матрица размера N*M. Нужно посчитать сумму элементов в чётных и нечетных строках и столбцах.

Первую часть программы я составил, а вот вторую, убей бог, не получается.

int main()
{
    setlocale(LC_ALL, "Russian");
    int N, M, i, j;
    int result4etn;
    int resultne4etn;
    cout << "Введите колл строк матрицы:";
    cin >> N;
    cout << "Введите колл стоб матрицы: ";
    cin >> M;
    int** mass = new int* [N]; //создаем массив указателей на элементы
    cout << endl;
    cout << "Заполните матрицу " << N << 'х' << M << endl;

    for (i = 0; i < N; i++)
    {
        mass[i] = new int[M]; //создаем массив элементов
    }

    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            cout << "Введите число: ";
            cin >> mass[i][j];
        }
    }

    cout << "Полученная матрица: " << endl;

    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            cout << mass[i][j];
        }

        cout << endl;
    }
}

Nicolas Chabanovsky's user avatar

задан 24 мая 2016 в 7:13

Denis's user avatar

6

Замените свой вывод матрицы на

int
    sum_even_rows = 0,
    sum_odd_rows  = 0,
    sum_even_cols = 0,
    sum_odd_cols  = 0;

cout << "Полученная матрица: " << endl;
for (i = 0; i < N; i++)
{
    for (j = 0; j < M; j++)
    {
        if (i%2 == 0) // четные строки
            sum_even_rows += mass[i][j];
        else
            sum_odd_rows += mass[i][j];

        if (j%2 == 0) // четные столбцы
            sum_even_cols += mass[i][j];
        else
            sum_odd_cols += mass[i][j];

        cout << setw(6) << mass[i][j] << " ";
    }
    cout << endl;
}

cout << "Сумма элементов в четных строках   :  " << sum_even_rows << endl;
cout << "Сумма элементов в нечетных строках :  " << sum_odd_rows  << endl;
cout << "Сумма элементов в четных столбцах  :  " << sum_even_cols << endl;
cout << "Сумма элементов в нечетных столбцах:  " << sum_odd_cols  << endl;

Здесь считаем столбцы/строки с нулевого (т.е. самый первый — четный).

ответ дан 24 мая 2016 в 7:52

Harry's user avatar

HarryHarry

214k15 золотых знаков117 серебряных знаков229 бронзовых знаков

0

Решение короче и без if

int T[2][2] = {};
for (int i=0;i<N;i++)
    for (int j=0;j<M;j++)
        T[i&1][j&1]+=E[i][j];
cout << "Сумма элементов в четных строках   :  " <<T[0][0] + T[0][1]<<endl;
cout << "Сумма элементов в нечетных строках :  " <<T[1][0] + T[1][1]<<endl;
cout << "Сумма элементов в четных столбцах  :  " <<T[0][0] + T[1][0]<<endl;
cout << "Сумма элементов в нечетных столбцах:  " <<T[0][1] + T[1][1]<<endl;

ответ дан 24 мая 2016 в 11:31

pavel's user avatar

pavelpavel

9,7793 золотых знака28 серебряных знаков42 бронзовых знака

uses crt;
const
  nmax=20;
var
  a: array[1..nmax,1..nmax] of integer;
  n,m,i,j,sum: byte;
begin
  clrscr;
  sum:=0;
  write('Ââåäèòå Г°Г*çìåðû Г¬Г*Г±Г±ГЁГўГ* n, m: ');
  readln(n,m);
  writeln('ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў: ');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      a[i,j]:=random(99)+1;
      if a[i,j] mod 2=0 then
      begin
        textcolor(green);
        sum:=sum+a[i,j];
      end
      else textcolor(0);
      write(a[i,j]:6);
    end;
    writeln;
  end;
  writeln;
  writeln('ÑóììГ* Г·ГҐГІГ*ûõ ýëåìåГ*òîâ = ',sum);
end.

Найти сумму четных элементов массива

 

Задача Найти сумму четных элементов массива.

 
Поскольку в программе должна осуществляться проверка на четность элементов, элементы массива должны быть целыми числами. Количество элементов в условии задачи не указано, поэтому в программе будет введено пользователем. Сами элементы массива также заполняет пользователь.
Проверка на четность каждого элемента в цикле осуществляется путем сравнения остатка от деления на 2 (%2) с нулем. Четное число делится нацело без остатка.
Результатом выполнения программы является вывод на экран суммы четных элементов массива.

Реализация на С++

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

#include <iostream>
using namespace std;
int main()
{
  int *mas, n, sum;
  sum = 0;
  system(«chcp 1251»);
  system(«cls»);
  cout << «Введите размер массива: «;
  cin >> n;
  mas = new int[n];
  for (int i = 0; i<n; i++)
  {
    cout << «mas[« << i << «]= «;
    cin >> mas[i];
  }
  for (int i = 0; i<n; i++)
  {
    if (mas[i] % 2 == 0) // проверка на четность
      sum += mas[i];
  }
  cout << «Сумма четных элементов массива равна « << sum;
  cin.get(); cin.get();
  return 0;
}

 
Результат выполнения
Сумма четных элементов массива

Назад: Задачи и их решения

Все категории

  • Фотография и видеосъемка
  • Знания
  • Другое
  • Гороскопы, магия, гадания
  • Общество и политика
  • Образование
  • Путешествия и туризм
  • Искусство и культура
  • Города и страны
  • Строительство и ремонт
  • Работа и карьера
  • Спорт
  • Стиль и красота
  • Юридическая консультация
  • Компьютеры и интернет
  • Товары и услуги
  • Темы для взрослых
  • Семья и дом
  • Животные и растения
  • Еда и кулинария
  • Здоровье и медицина
  • Авто и мото
  • Бизнес и финансы
  • Философия, непознанное
  • Досуг и развлечения
  • Знакомства, любовь, отношения
  • Наука и техника


12

Ввести матрицу. Найти сумму четных элементов матрицы. Если она отрицательна, то
заменить элементы четных столбцов матрицы на 1, в ином случае нечетных столбцов
на -1. Матрицу распечатать

1 ответ:



0



0

Не самое лучшее решение, но вот:

const
    n = 2;
    k = 2;
var
  i,j,s:integer;
  a:array[1..n,1..k] of integer;
begin
    s:=0;
  for i:=1 to n do
    for j:=1 to k do
    begin
     Writeln(‘Введите a[‘,i,’,’,j,’]:’);
     readln(a[i,j]);
     if a[i,j] mod 2=0 then s:=s+a[i,j];
    end;
  if s<0 then
    for i:=1 to n do
     for j:=1 to k do
      if j mod 2=0 then
       a[i,j]:=1;
  if s>=0 then
    for i:=1 to n do
     for j:=1 to k do
      if j mod 2=0 then
       a[i,j]:=-1;
 for i:=1 to n do
   begin
     for j:=1 to k do
   write(‘a[‘:4,i,’,’,j,’]=’,a[i,j]);
   writeln;
   end;
<span>end.</span>

Читайте также

Чтобы закодировать 8 разных символов, для каждого символа выделяются три бита (2 в третьей степени = 8). Отсюда, 120/3=40 символов.

Ответ:

<em>import math
</em>

<em>
</em>

<em>CONST_PI = 3.14  </em>

<em>
</em>

<em>def calc_circle_area(radius):
</em>

<em> return CONST_PI * (radius ** 2)
</em>

<em>
</em>

<em>def main():
</em>

<em> r = float(input())
</em>

<em> assert r > 0
</em>

<em> assert r < 10**5  </em>

<em> assert r % math.floor(r) < 100
</em>

<em>
</em>

<em> print(round(calc_circle_area(r), 6))
</em>

<em>  </em>

<em>
</em>

<em>if __name__ == ‘__main__’:
</em>

<em> main()
</em>

<em></em>

Объяснение:

Сайт ломает код, по этому прилагаю скриншот исходника. Протестировано.

// PascalABC.NET 3.3.5, сборка 1669 от 21.05.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadAllText(‘A.txt’).ToIntegers;
  WriteAllText(‘B.txt’,(a[0]*a[1]).ToString)
end.

Квадрат зеленый
Круг синий
Ромб белый
Треугольник красный

Var ar:array[1..5] of integer;
i:integer;
s:real;
begin;
for i:=1 to 5 do
begin;
readln(ar[i]);
s:=s+ar[i];
end;
s:=s/5;
writeln(‘Среднее арифметическое:’,s);
writeln(‘Result:’);
for i:=1 to 5 do
if ar[i]>s then write(ar[i]:4);
end.

Понравилась статья? Поделить с друзьями:
  • Как составит план бункера
  • Как найти свой телефон дома включенный
  • Как найти один выключенный наушник беспроводной
  • Программа microsoft html приложение не работает windows 7 как исправить
  • Как на айфоне найти почту icloud