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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Алексейко112
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 49
#1

Найти среди строк заданной целочисленной матрицы D строку с максимальным произведением элементов - C++

04.06.2014, 19:20. Просмотров 473. Ответов 6
Метки нет (Все метки)

Составьте программу на языке С++, позволяющую находить среди строк заданной целочисленной матрицы D размера 4*4, компоненты которой не превышают 8, найти строку с максимальным произведением элементов(В ответе должна быть построена блок-схема).
Миниатюры
Найти среди строк заданной целочисленной матрицы D строку с максимальным произведением элементов  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 19:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти среди строк заданной целочисленной матрицы D строку с максимальным произведением элементов (C++):

Найти строку матрицы с максимальным произведением элементов - C++
Среди всех строк массива X найти максимальную по произведению строку, в которой найти количество чисел, кратных семи и трём.

Среди тех строк целочисленной матрицы, которые содержат только нечетные элементы, найти строку с максимальной суммой модулей элементов - C++
#include <iostream> #include <conio.h> #include <cmath> const int m=3,n=3; using namespace std; int a; void poisk(); int...

Среди строк заданной матрицы найти строку с максимальной по модулю суммой элементов - C++
Среди строк заданной матрицы, содержащих только нечетные элементы, найти строку с максимальной по модулю суммой элементов.

Найти строку матрицы с максимальным произведением, изьять ее и напечатать результат - C++
Нужно найти строку матрицы с максимальным произведением и изьять ее и напечатать результат, я сделал ввод и поиск произведения, помогите...

Найти максимальный среди всех элементов тех строк заданной матрицы, которые упорядочены - C++
Доброго времени суток, у меня есть задача ( практика,паскаль, процедуры ) так вот я не могу решить задачу :( Помогите пожалуйста...

Найти максимальный элемент среди всех элементов тех строк заданной матрицы А (4,4), которые упорядочены по возрастанию - C++
нужно найти максимальный элемент среди всех элементов тех строк заданной матрицы А (4,4), которые упорядочены по возрастанию. Если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ElectroBot
0 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 10
25.07.2014, 12:44 #2
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
35
36
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    int D[4][4];
    int composition[]={1,1,1,1};        
    int max = 0;
    
    for(int h = 0; h < 4 ; h ++)
    {
        for(int v = 0; v < 4 ; v++)
        {
            int ch ;
            std::cin>>ch;
            D[h][v] = ch;
            composition[h]*= ch;
        }
    }
    
 
 
    for(int i = 0; i < 4 ; i ++)
    {
        if(composition[i]>max)  max=composition[i]; 
    }
 
    std::cout<<max;
        
    return 0;
}
lawr
366 / 260 / 124
Регистрация: 09.05.2014
Сообщений: 769
26.07.2014, 19:25 #3
ElectroBot, нужно найти не значение максимального произведения, а строку.
ElectroBot
0 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 10
28.07.2014, 12:08 #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
35
36
37
38
39
40
41
42
43
44
// NewProject.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    int D[4][4];
    int composition[]={1,1,1,1};        
    int max = 0;
    int position = 0;
    
    for(int h = 0; h < 4 ; h ++)
    {
        for(int v = 0; v < 4 ; v++)
        {
            int ch ;
            std::cin>>ch;
            D[h][v] = ch;
            composition[h]*= ch;
        }
    }
    
 
 
    for(int i = 0; i < 4 ; i ++)
    {
        if(composition[i]>max)  
        {
            max=composition[i];
            position = i;
        }
    }
 
    std::cout<<position+1;
        
    return 0;
}
GyroReaper
8 / 8 / 1
Регистрация: 20.10.2013
Сообщений: 49
28.07.2014, 12:53 #5
В условии сказано, что нельзя вводить числа больше 8. Разве не так?
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.07.2014, 14:32 #6
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
35
36
37
#include <algorithm>
#include <iterator>
#include <iostream>
#include <iomanip>
#include <random>
#include <array>
 
int main()
{
    const size_t matrixSize = 4;
 
    std::default_random_engine randomEngine;
    std::uniform_int_distribution <int> distribution(1, 8);
 
    int maximalMult = 1;
    size_t resultIndex = 0, currentIndex = 0;
 
    std::array <std::array <int, matrixSize>, matrixSize> matrix;
    std::cout << "Matrix: " << std::endl;
    for (auto &currentRow : matrix) {
        int currentMult = 1;
        for (auto &currentElement : currentRow) {
            std::cout << std::setw(4) << (currentElement = distribution(randomEngine));
            currentMult *= currentElement;
        }
        if (currentMult > maximalMult) {
            maximalMult = currentMult;
            resultIndex = currentIndex;
        }
        currentIndex++;
        std::cout << std::endl;
    }
    std::cout << "Maximal mult in row " << (resultIndex + 1) << ": " << (maximalMult) << std::endl;
 
    std::system("pause");
    return 0;
}
Trwsdf
Заблокирован
28.07.2014, 18:52 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 const int SIZE = 4;
    int init[SIZE][SIZE] = {
        {1, 2, 3, 4},
        {4, 3, 5, 6},
        {5, 6, 7, 8},
        {3, 5, 3, 1}
    };
 
    pair<int, int> &&data = {0, 1};
    pair<int, int> &&result = {0, 1};
    std::for_each(*init, &init[SIZE - 1][SIZE], [&](const int & elem)->void {
        data.second *= elem;
        if (++data.first % SIZE == 0)
            if (data.second > result.second)data.second = (result = {data.first / SIZE, data.second}, 1);
    });
    cout << result.first; //first 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2014, 18:52
Привет! Вот еще темы с ответами:

Массивы. Найти максимальный элемент среди всех элементов тех строк заданной матрицы, которые упорядочены - C++
Здравствуйте! помогите написать программу на языке C++. Найти максимальный элемент среди всех элементов тех строк заданной матрицы, которые...

Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами - C++
что не так? Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами...

Найти строку матрицы с наибольшим и наименьшим произведением элементов - C++
Дана квадратная матрица. Найти строку с наибольшим и наименьшим произведением элементов.Вывести на печать найденные строки и произведения...

Найти сумму элементов каждой строки заданной целочисленной матрицы - C++
Создать целочисленный двумерный массив 7 строк на 6 столбцов. Заполнить его случайными числами в диапазоне от - 25 до 50 Посчитать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.07.2014, 18:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru