Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 3
1

Создать класс определяющий 2-мерный массив найти min из max

12.12.2010, 12:40. Показов 1241. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Данный 2-мерный массив должен состоять из 1-мерных массивов,нужно в столбцах найти мах-ные элементы и из них выбрать минимальный.Не понятна реализация поиска по столбцам.Возможно еще не правильно описал класс.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2010, 12:40
Ответы с готовыми решениями:

Найти max и min элементы массива y и сформировать массив z из элементов массива y, находящихся между max и min y. Записать массив z в обратном порядке
Дан массив Х{80 элементов}. Вычислить {y}_{i}=sin\sqrt{{x}_{i}}+{cos}^{2}{{x}_{1}}^{2} Найти...

Создать двумерный массив 3х3, найти max, min и поменять их местами
#include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> int main () { ...

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с...

Найти max и min элементы в массиве и номер элемента, близкого к среднему арифметическому min и max.
Привет всем! Очень прошу помочь в решении задачи на определение характеристик одномерного массива....

5
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.12.2010, 13:41 2
Покажи, что написал.
0
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 3
12.12.2010, 14:04  [ТС] 3
Описание
//---------------------------------------------------------------------------

#ifndef Unit3H
#define Unit3H
class massiv
{
int p[20],v[20];
int k;
public: void max(int,int );
void vvod(int n,int *b);

intmin();

};

//---------------------------------------------------------------------------
#endif

Реализация
//---------------------------------------------------------------------------

#pragma hdrstop

#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)

void massiv ::vvod (int n,int b[])
{
for(int i=0;i<n;i++)
p[i]=b[i];


}

void massiv::max( int n,int k)
{
int d=p[0];

for (int i=1;i <= n; i++)

{if (p[i]>d)
d=p[i];
}
v[k]=d;


}
int massiv::min()
{
int d=v[0];
for (int i=1;i <=k; i++)
{
if (v[i]<d)
d=v[i];
}
return d;
}

Main
//---------------------------------------------------------------------------

#pragma hdrstop
#include "unit3.cpp"
#include <conio.h>
#include<stdio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int i,j, NK,n,b[20]={0},min,s[20][20];
massiv a[20]={0};
printf ("vvesti koli4estvo massivov:\n");
scanf("%d",&NK);
printf("vvesi elementi:\n");
for (int i = 0; i <NK; i++)
{
printf("vvesti koli4estvo elementov massiva :\n");
scanf("%d",&n);
printf("vvesi elementi:\n");
for(int j=0;j<n;j++)
{
scanf("%d",&b[j]);

}
a[i].vvod(n,b);


}
for (int i = 0; i <NK; i++)



{

a[i].max(n);
}

min=a[i].min();
printf("%d",min);
getch();

return 0;
}
//---------------------------------------------------------------------------
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.12.2010, 14:36 4
А где двумерный массив?
0
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 3
12.12.2010, 14:49  [ТС] 5
printf ("vvesti koli4estvo massivov:\n");
scanf("%d",&NK);
printf("vvesi elementi:\n");
for (int i = 0; i <NK; i++)
{
printf("vvesti koli4estvo elementov massiva :\n");
scanf("%d",&n);
printf("vvesi elementi:\n");
for(int j=0;j<n;j++)
{
scanf("%d",&b[j]);

}
a[i].vvod(n,b);


}

Как сказал преподаватель,2-мерный должен состоять из 1-мерных
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.12.2010, 15:38 6
Двумерный массив это массив массивов. Двумерный массив (матрица) NxM это N массивов по M элементов.
Вот пример подобного класса, содержащего динамический двумерный массив.
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
class Array
{
protected:
        int** _data;
        int _cols, _rows;
public:
        Array(void) : _data(0), _rows(0),_cols(0) {};
        Array(int rows, int cols, bool fill=false, int filler=0)
                : _rows(rows), _cols(cols), _data(0)
        {
                _data = new int* [_rows];
                for (int i=0; i<_rows; i++)
                {
                        _data[i] = new int[_cols];
                        if (fill)
                                for (int j=0; j<_cols; j++)
                                        _data[i][j] = filler;
                }
        }
        Array(const Array& other) :
                _cols(other.cols()),
                _rows(other.rows())
        {
                _data = new int* [_rows];
                for (int i=0; i<_rows; i++)
                {
                        _data[i] = new int[_cols];
                        for (int j=0; j<_cols; j++)
                                _data[i][j] = other._data[i][j];
                }
        }
 
        Array& operator= (const Array& other)
        {
                if (this!=&other)
                {
                        if (_data!=0)
                        {
                                for (int i=0; i<_rows; i++)
                                        delete [] _data[i];
                                delete [] _data;
                        }
                        _rows = other.rows();
                        _cols = other.cols();
 
                        _data = new int* [_rows];
                        for (int i=0; i<_rows; i++)
                                _data[i] = new int[_cols];
 
                        for (int i=0; i<_rows; i++)
                                for (int j=0; j<_cols; j++)
                                        _data[i][j] = other._data[i][j];
                }
                return *this;
        }
 
        friend ostream& operator<< (ostream& o, const Array& a)
        {
                for (int i=0; i<a._rows; i++)
                {
                        for (int j=0; j<a._cols; j++)
                                o << setw(4) << a._data[i][j];
                        o << endl;
                }
                return o;
        }
 
        void fill_random()
        {
                for (int i=0; i<_rows; i++)
                        for (int j=0; j<_cols; j++)
                                _data[i][j] = rand()%100+1;
        }
 
        int* operator[](int i) { return _data[i]; }
        int& at(int i, int j) { return _data[i][j]; }
 
        const int cols() const { return _cols; }
        const int rows() const { return _rows; }
 
        ~Array()
        {
                if (_data!=0)
                {
                        for (int i=0; i<_rows; i++)
                                delete [] _data[i];
                        delete [] _data;
                }
        }
};
 
int main()
{
        srand(static_cast<unsigned int>(time(0)));
 
        Array a(5, 5);
        a.fill_random();
        cout << a << endl;
        int* max_cols = new int[a.cols()];
        for (int i=0; i<a.cols(); i++)
        {
                max_cols[i] = a[i][0];
                for (int j=1; j<a.rows(); j++)
                        if (max_cols[i] < a[i][j])
                                max_cols[i] = a[i][j];
                cout << setw(4) << max_cols[i];
        }
        cout << endl << endl;
 
        int min = max_cols[0];
        for (int i=1; i<a.cols(); i++)
                if (min > max_cols[i])
                        min = max_cols[i];
 
        cout << setw(4) << min << endl;
        delete [] max_cols;
 
        return 0;
}
0
12.12.2010, 15:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2010, 15:38
Помогаю со студенческими работами здесь

Найти max и min, если min левее max, то среднее арифметическое между ними
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() {...

18. Даны различные действительные числа x, y, z, d. Найти max (min (x, y), min (x, z), min (z, d)
Даны различные действительные числа x, y, z, d. Найти max (min (x, y), min (x, z), min (z, d)).

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

Массив: Найти min и max в двух заданных массивах, а разницу этих значений записать в массив С...
Даны два массива, обозначим их A и B. Найти максимальный и минимальный элемент из двух массивов (в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru