Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Произведение четных элементов в массиве. / 14 сообщений из 14, страница 1 из 1
24.05.2013, 14:51
    #38272265
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Дан двумерный целочисленный массив, состоящий из 3 строчек и 2 столбцов,
вычислить произведение всех четных элементов.
Значения элементов вводятся с клавиатуры.

Нужна помощь. Массив создать получилось, а вот как подсчитать произведение четных элементов, не получается.

Вот, придумал только это (но не работает):

Код: plaintext
1.
2.
3.
4.
5.
6.
   int p = 1;
   if (array[i][j] % 2 == 0 && array[i][j] !=0)
   {
      p *= array[i][j];
      cout << "Произведение четных элементов = " << p << endl;
   }



Целый код:
Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <math.h>
 
using namespace std;


void printArray(int array[3][2])
{
   SetConsoleOutputCP(1251);
   cout << "\nПолученный массив\n";
 
   for(int i = 0; i < 3; i++)
   {
   for(int j = 0; j < 2; j++)
   cout << setw(2) << array[i][j] << endl; 
   }
   int p = 1;
   if (array[i][j] % 2 == 0 && array[i][j] !=0)
   {
      p *= array[i][j];
      cout << "Произведение четных элементов = " << p << endl;
   }

}


int main()
{	 
   SetConsoleOutputCP(1251);
   int array[3][2];        
 
   for(int i = 0; i < 3; i++)   
   {
   cout << "Вводим " << i + 1 << " строку\n"; 
 
   for(int j = 0; j < 2; j++)   
   { 
      cin >> array[i][j];                
   }   
   } 
   printArray(array);   
   return 0;
}

...
Рейтинг: 0 / 0
24.05.2013, 15:07
    #38272315
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
FRANQ1,

вы все правильно сделали, только печать произведения надо делать после циклов
Код: plaintext
1.
2.
3.
4.
5.
6.
for(int i = 0; i < 3; i++)
   {
   for(int j = 0; j < 2; j++) {
....
}
}


cout << "Произведение четных элементов = " << p << endl;
...
Рейтинг: 0 / 0
24.05.2013, 16:15
    #38272497
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Анатолий Широков,

Если я вас правильно понял, должно получиться так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
void printArray(int array[3][2])
{
   setlocale(0, "");
   cout << "\Полученный массив\n";
 
   for(int i = 0; i < 3; i++)
   {
   for(int j = 0; j < 2; j++)
   cout << setw(2) << array[i][j] << endl; 
   }

   int p = 1;
   if (array[i][j] % 2 == 0 && array[i][j] !=0)
   {
      p *= array[i][j];   
   }
      cout << "Произведение четных элементов = " << p << endl;
}
...
Рейтинг: 0 / 0
24.05.2013, 19:38
    #38272796
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Код: sql
1.
2.
3.
4.
5.
for(i=0; i<3;i+=2)
   for(j=0; j<2; j+=2)
   {
     ...
    }



Не?
...
Рейтинг: 0 / 0
24.05.2013, 19:47
    #38272798
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
landy,

выдает ошибки (и так, и так):


1>------ Построение начато: проект: 23, Конфигурация: Debug Win32 ------
1>Компиляция...
1>23.cpp
1>c:\users\frankee\documents\visual studio 2008\projects\23\23\23.cpp(12) : warning C4129: :
1>c:\users\frankee\documents\visual studio 2008\projects\23\23\23.cpp(19) : error C2065: j: необъявленный идентификатор
1>c:\users\frankee\documents\visual studio 2008\projects\23\23\23.cpp(19) : error C2065: j: необъявленный идентификатор
1>c:\users\frankee\documents\visual studio 2008\projects\23\23\23.cpp(21) : error C2065: j: необъявленный идентификатор
1>c:\users\frankee\documents\visual studio 2008\projects\23\23\23.cpp(24) : error C2065: p: необъявленный идентификатор
1>Журнал построения был сохранен в "file://c:\Users\Frankee\Documents\Visual Studio 2008\Projects\23\23\Debug\BuildLog.htm"
1>23 - ошибок 4, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
...
Рейтинг: 0 / 0
24.05.2013, 19:50
    #38272800
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
FRANQ1,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
void printArray(int array[3][2])
{
   setlocale(0, "");
   cout << "\Полученный массив\n";
 
   int p = 1;
   for(int i = 0; i < 3; i++)
   {
       for(int j = 0; j < 2; j++) {
            cout << setw(2) << array[i][j] << endl; 
            // вычислять произведение надо в цикле
            if (array[i][j] % 2 == 0 && array[i][j] !=0)
            {
                 p *= array[i][j];   
            }
       }
   }
   // а выводить за циклом
   cout << "Произведение четных элементов отличных от нуля = " << p << endl;
}
...
Рейтинг: 0 / 0
24.05.2013, 20:02
    #38272814
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <stdio.h>

int main(void)
{
    int a[]={1,2,3,4,5,6,7,8,9,0};
    int i;
    for (i=0;i<10;i+=2)
        printf("%d ",a[i]);
    
     printf("\n");
return 0;
}
...
Рейтинг: 0 / 0
24.05.2013, 20:39
    #38272838
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Код: sql
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
#include <iostream>
//#include <iomanip>
//#include <windows.h>
//#include <math.h>

using namespace std;


void printArray(int array[2][3])
{
        //SetConsoleOutputCP(1251);
        cout << "\nПолученный массив\n";

        for(int j = 0; j < 3; j++) {
                cout<<endl;
                for(int i = 0; i < 2; i++)
                        cout  << array[i][j]<<" " ;
        }
        // соб-но вычисление
        int p = 1;
        for(int j=0;j<3;j++)
                for(int i=0;i<2;i+=2)
                        p *= array[i][j];

        cout << "Произведение четных элементов = " << p << endl;

}

int main()
{
        //SetConsoleOutputCP(1251);
        int array[2][3];

        for(int j = 0; j < 3; j++)
        {
                cout << "Вводим " << j + 1 << " строку\n";

                for(int i = 0; i < 2; i++)
                {
                        cin >> array[i][j];
                }
        }
        printArray(array);
        return 0;
}



Четные - 0,2,4 элементы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Вводим 1 строку
1 2
Вводим 2 строку
3 4
Вводим 3 строку
5 6

Полученный массив

1 2 
3 4 
5 6 

Произведение четных элементов = 15
...
Рейтинг: 0 / 0
24.05.2013, 21:07
    #38272859
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
landy,

у меня матрица в один столбец печатается

...
Рейтинг: 0 / 0
24.05.2013, 21:35
    #38272872
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Проверьте цикл вывода массива
...
Рейтинг: 0 / 0
24.05.2013, 21:40
    #38272875
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
...
Рейтинг: 0 / 0
24.05.2013, 22:39
    #38272893
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
landy,

я копипастил)
...
Рейтинг: 0 / 0
25.05.2013, 16:50
    #38273201
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
Если бы вы копипастили у вас бы было
3*3*5=30
а не
4*2*6=48
...
Рейтинг: 0 / 0
25.05.2013, 19:11
    #38273266
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произведение четных элементов в массиве.
landy,

оказывается работал старый код, спасибо.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Произведение четных элементов в массиве. / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]