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

Определить для каждого четного столбца максимальный элемент - C++

Восстановить пароль Регистрация
 
underwa1er
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 27
23.11.2014, 19:17     Определить для каждого четного столбца максимальный элемент #1
Помогите составить программу для задачи: "Дан двумерный массив из 5 строк и 6 столбцов. Определить для каждого четного столбца максимальный элемент. Найти произведение этих элементов."
Или как хотя бы определить максимальный элемент у четных столбцов?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 19:17     Определить для каждого четного столбца максимальный элемент
Посмотрите здесь:

Матрица, максимальный элемент каждого столбца. C++
C++ Первый элемент каждого четного столбца заменить средним арифметическим
Написать функцию,которая вычисляет и печатает максимальный элемент каждого столбца матрицы C++
Определить сумму элементов каждого столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы A C++
Дана матрица. Найти максимальный и минимальный Элемент каждого столбца C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,800
Завершенные тесты: 1
23.11.2014, 20:24     Определить для каждого четного столбца максимальный элемент #2
http://rextester.com/FHBITM18295

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <algorithm>
#include <stdexcept>
#include <iostream>
#include <chrono>
#include <random>
using namespace std;
//------------------------------------------------------------
 
//запчасти от стандартного генератора псевдослучайных чисел
namespace _private{
 
::std::default_random_engine& _RND()
{
    static ::std::default_random_engine r(
        static_cast<uint32_t>(
            ::std::chrono::system_clock::now().time_since_epoch().count()
        )
    );
    return r;
}
uint32_t RND() { return _RND()(); }
    
} //namespace _private
 
//------------------------------------------------------------
//генератор псевдослучайных чисел
//используется для автоматического заполнения матриц случайным содержимым
uint32_t Random(uint32_t minvalue, uint32_t maxvalue)
{
    if(minvalue>maxvalue) 
    {
        const auto tmp = minvalue;
        minvalue = maxvalue;
        maxvalue = tmp;
    }
    return _private::RND() % (maxvalue - minvalue + 1) + minvalue;
}
 
//------------------------------------------------------------
 
 
//------------------------------------------------------------
 
// заполняет матрицу случайными данными
template<class T, size_t L, size_t R> 
void FillMatrixRandom( T (&arr)[L][R])
{
    T* const p = (T*)arr;
    const auto lambda = [](){ return Random(0,9); };
    ::std::generate(p, p + R*L, lambda);
}
//------------------------------------------------------------
 
// печатает содержимое матрицы в консоль
template<class T, size_t L, size_t R> 
void ViewMatrix( const T (&arr)[L][R])
{
    for(const auto& l: arr)
    {
        for(const auto& r: l)
            cout<< r<<" ";
        cout<<'\n';
    }
}
 
// находит максимальный элемент столбца
//------------------------------------------------------------
template<class T, size_t L, size_t R>
T MaxElement(const size_t row, const T (&arr)[L][R])
{
    if(row>=R)
        throw std::out_of_range("ERROR: out range");
    
    T big = arr[0][row];
    for(size_t l=0; l<L; ++l)
        big = arr[l][row]> big ? arr[l][row]: big;
 
    ::std::cout << "row = " << row << " : max element = " << big << '\n';
    return big;
}
 
 
template<class T, size_t L, size_t R>
T Calculate(const T (&arr)[L][R])
{
    T result = MaxElement(0, arr);
    for(size_t n=2; n<R; n+=2)
        result *= MaxElement(n, arr);
    return result;
}
 
 
//------------------------------------------------------------
 
int main()
{
    std::cout << "  matrix\n";
    
    int arr[5][6]; 
    FillMatrixRandom(arr);
    ViewMatrix(arr);
    std::cout << "-----------\n";
    
    ::std::cout << "total = " << Calculate(arr) << '\n';
}
underwa1er
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 27
24.11.2014, 15:49  [ТС]     Определить для каждого четного столбца максимальный элемент #3
Спасибо, конечно. Но я, изучающий программирование всего пару месяцев, не смогу разобрать вашу программу
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
24.11.2014, 17:17     Определить для каждого четного столбца максимальный элемент #4
Цитата Сообщение от underwa1er Посмотреть сообщение
Спасибо, конечно. Но я, изучающий программирование всего пару месяцев, не смогу разобрать вашу программу
И за пару месяцев не изучили, как писать подобные программы?.. Подозрительно.
underwa1er
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 27
25.11.2014, 12:22  [ТС]     Определить для каждого четного столбца максимальный элемент #5
Максимум что я пока знаю
Ну не пару месяцев, а меньше месяца. Только за учебу взялся

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <ctime>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h.>
 
int main(int argc, _TCHAR* argv[])
{
    srand(time(NULL));
    setlocale(LC_ALL, "Russian");
    double A [100];
    double x = 0;
    int i, j;
    
    do
     {
        printf ("\n Введите Х (0-50): ");
        scanf_s ("%lf", &x);
        if (x > 50 || x < 0) 
        printf ("\n Х должен быть в пределах (0-50)!"); 
     } 
        while (x > 50 || x < 0);
 
        
    for (int i = 0; i < 100; i++)
        {
            A[i] = (double) rand()*85/RAND_MAX - 35;
        }
    
    double k;
   
    for ( i = 0; i < 100; i++)
        {
            for ( j = 98; j >= i; j--)
                if (A[j] > A[j + 1])
                    {
                        k = A[j];
                        A[j] = A[j + 1];
                        A[j + 1] = k;
                    }
         }
    
    printf ("\n Ответ: \n\n");
 
    for ( i = 0; i < 100; i++)
        {
            if (A[i] > 0 && A[i] < x)
            printf ("  %5.2lf", A[i]);
        }
 
    _getch ();
    return 0;
}
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
25.11.2014, 12:41     Определить для каждого четного столбца максимальный элемент #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
    const int   N = 5;
    const int   M = 6;
    int     mas[N][M] = {{1, 2,  3,  84, 5,  6},
                        {1,  52, 3,  4,  5,  6},
                        {1,  2,  73, 4,  5,  6},
                        {1,  42, 43, 44, 45, 46},
                        {21, 22, 23, 24, 25, 26}};
 
    int     res = 1;
    int     max = 0;
    for(int i = 0; i < M; ++i)
    {
        if(0 == i % 2)
        {
            max = mas[0][i];
            for(int j = 1; j < N; ++j)
            {
                if(mas[j][i] > max)
                    max = mas[j][i];
            }
            res *= max;
            std::cout << "max element for " << i
                      << "-column = " << max << std::endl;
        }
    }
    std::cout << "res = " << res << std::endl;
underwa1er
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 27
25.11.2014, 14:27  [ТС]     Определить для каждого четного столбца максимальный элемент #7
Большое спасибо!
Tracker_03
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 8
26.11.2014, 17:33     Определить для каждого четного столбца максимальный элемент #8
подскажите, пожалуйста, как доработать код, чтобы матрица выводила максимальный по модулю элемент из каждой строки?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
int a[5][5];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
a[i][j]=rand()%100-100;
cout<<a[i][j]<<" "; }
cout<<endl;}
system("pause");
return 0;
}
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
26.11.2014, 17:48     Определить для каждого четного столбца максимальный элемент #9
двоечник. надо создавать отдельную тему.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    const int   N = 5, M = 5;
    int a[N][M];
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
        {
            a[i][j]=rand()%100-100;
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    int     max = 0;
    for(int i=0;i<N;i++)
    {
        max = abs(a[i][0]);
        for(int j=0;j<M;j++)
        {
            if(abs(a[i][j]) > max)
                max = abs(a[i][j]);
        }
        cout << max << endl;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 18:01     Определить для каждого четного столбца максимальный элемент
Еще ссылки по теме:

C++ Найти максимальный и минимальный элемент каждого столбца и строки матрицы
В целочисленном массиве после каждого четного числа вставить максимальный элемент массива C++
C++ В целочисленном массиве после каждого четного числа вставить максимальный элемент массива

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

Или воспользуйтесь поиском по форуму:
Tracker_03
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 8
26.11.2014, 18:01     Определить для каждого четного столбца максимальный элемент #10
большое спасибо!
Yandex
Объявления
26.11.2014, 18:01     Определить для каждого четного столбца максимальный элемент
Ответ Создать тему
Опции темы

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