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

Найти наибольший элемент в каждом из двух массивов - C++

Восстановить пароль Регистрация
 
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
30.11.2011, 09:52     Найти наибольший элемент в каждом из двух массивов #1
Помогите пожалуйста!потерял лекцию по подропграммам в си,а задание нужно срочно сдать
Ввести двумерные массивы x1 и x2
Найти наибольший
элемент в каждом из массивов. В каждой матрице записать в строку,
содержащую этот элемент нули, исключая сам максимальный элемент.
Вывести на экран матрицы до преобразования и после. (При решении
реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,M,Name),
Vivod2m(A,N,M,Name) и ZamenaStr(A,Iz,M,Jz) – замена нулями элементов
строки Iz, кроме элемента расположенного в столбце Jz; а также
процедуру Maximum(A,N,M,Imax,Jmax) – поиск координат максимума)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 09:52     Найти наибольший элемент в каждом из двух массивов
Посмотрите здесь:

C++ Найти наибольший элемент в каждом столбце матрицы и непер наименьшего из них?
Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные C++
Найти в каждом столбце наибольший элемент и поменять его местами с элементом главной диагонали C++
C++ В двумерном массиве А[5, 4] найти в каждом столбце наибольший (максимальный элемент)
В двумерном массиве А[5, 4] найти в каждом столбце наибольший (максимальный элемент) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 09:56     Найти наибольший элемент в каждом из двух массивов #2
а обязательно на Си?
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
30.11.2011, 10:07  [ТС]     Найти наибольший элемент в каждом из двух массивов #3
да можно и на паскале ,не так критично,но в си предпочтительнее)
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:34     Найти наибольший элемент в каждом из двух массивов #4
паскаль я тем более не знаю.
на плюсах могу шарахнуть
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
30.11.2011, 10:52  [ТС]     Найти наибольший элемент в каждом из двух массивов #5
тогда хоть в си пжласт)
а в си от си++ есть разница?
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:54     Найти наибольший элемент в каждом из двух массивов #6
еще как!
ну си я знаю весьма херово так что не судьба
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 10:57     Найти наибольший элемент в каждом из двух массивов
Еще ссылки по теме:

В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов C++
В каждом из заданных массивов найти наибольшее значение, и разделить на него все элементы массивов C++
Определить максимальные элементы и поменять их местами в каждом из двух заданных массивов C++

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

Или воспользуйтесь поиском по форуму:
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.12.2011, 10:57     Найти наибольший элемент в каждом из двух массивов #7
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
void input      ( int **, int , int );   // ввод руками
void input_rand ( int **, int , int );   // ввод рандомом
int  find_max   ( int **, int , int );   // поиск максимума
void resize     ( int **, int &, int &);   // изменение размеров матрицы
void change     ( int **, int , int , int );  // изменение
void output     ( int **, int , int );   // вывод
 
int main()
{
    srand ( time ( NULL ) );
    int **matrix_1;
    int **matrix_2;
 
    std::cout << "Enter size of matrix_1 ( N x M ): ";
    int N_1, M_1;
    std::cin  >> N_1 >> M_1;
    std::cout << "\nEnter size of matrix_2 ( N x M ): ";
    int N_2, M_2;
    std::cin  >> N_2 >> M_2;
 
 
    int max_1;        // максимум первой матрицы
    int max_2;        // максимум второй матрицы
 
    matrix_1 = new int * [N_1];      // создание матрицы НхМ
    for ( int i = 0; i < N_1; i ++ )
        matrix_1[i] = new int [M_1];
 
    matrix_2 = new int * [N_2];      // создание второй матрицы Н2хМ2
    for ( int i = 0; i < N_2; i ++ )
        matrix_2[i] = new int [M_2];
 
    int choose = 13;                 // менюшка
    while ( choose != 0 )
    {
 
        switch (choose)
        {
        case 1:
            std::cout << "Input matrix_1" << std::endl;  // Ввод руками
            input(matrix_1, N_1, M_1);
            break;
        case 2:
            std::cout << "Input matrix_2" << std::endl;
            input(matrix_2, N_2, M_2);
            break;
        case 3:
            std::cout << "Print matrix_1" << std::endl; // Вывод
            output(matrix_1, N_1, M_1);
            break;
        case 4:
            std::cout << "Print matrix_2" << std::endl;
            output(matrix_2, N_2, M_2);
            break;
        case 5:
            std::cout << "Randomize matrix_1" << std::endl;  // рандомное заполнение
            input_rand( matrix_1, N_1, M_1 );
            break;
        case 6:
            std::cout << "Randomize matrix_2" << std::endl;
            input_rand( matrix_2, N_2, M_2 );
            break;
        case 7:
            std::cout << "Resize matrix_1" << std::endl;    // Изменение размеров Н и М
            resize( matrix_1, N_1, M_1 );
            break;
        case 8:
            std::cout << "Resize matrix_2" << std::endl;
            resize( matrix_2, N_2, M_2 );
            break;
        case 9:
            std::cout << "Find max in matrix_1" << std::endl;
            max_1 = find_max ( matrix_1, N_1, M_1);
            break;
        case 10:
            std::cout << "Find max in matrix_2" << std::endl;
            max_2 = find_max ( matrix_2, N_2, M_2);
            break;
        case 11:
            std::cout << "Change matrix_1" << std::endl;
            change ( matrix_1, N_1, M_1, max_1);
            break;
        case 12:
            std::cout << "Change matrix_2" << std::endl;
            change ( matrix_2, N_2, M_2, max_2);
            break;
        case 13:
            break;
        case 0:
            std::cout << "======GOODBYE !!=====" << std::endl;
            break;
        default:
            std::cout << "ERROR" << std::endl;
            break;
        }
 
        std::cout << "1.  Input matrix_1" << std::endl;
        std::cout << "2.  Input matrix_2" << std::endl;
        std::cout << "3.  Print matrix_1" << std::endl;
        std::cout << "4.  Print matrix_2" << std::endl;
        std::cout << "5.  Randomize matrix_1" << std::endl;
        std::cout << "6.  Randomize matrix_2" << std::endl;
        std::cout << "7.  Resize matrix_1" << std::endl;
        std::cout << "8.  Resize matrix_2" << std::endl;
        std::cout << "9.  Find max in matrix_1" << std::endl;
        std::cout << "10. Find max in matrix_2" << std::endl;
        std::cout << "11. Change matrix_1" << std::endl;
        std::cout << "12. Change matrix_2" << std::endl;
        std::cout << "0 . EXIT" << std::endl;
 
        std::cout << "\n";
        std::cin  >> choose;
        system("cls");
        }
 
    return 0;
 
    }
 
 
 
void output ( int **matrix, int row, int column )
{
        std::cout << std::endl;
        for ( int i = 0; i < row; i ++ )
        {
                for ( int j = 0; j < column; j ++ )
                        std::cout << matrix[i][j] << "\t";
                std::cout << std::endl;
        }
}
 
void input_rand ( int ** matr, int row, int column )
{
        for ( int i = 0; i < row; i ++ )
                for ( int j = 0; j < column; j ++ )
                        matr[i][j] = rand() % 50 - rand() % 25;
}
 
void resize( int ** matr, int &row, int &column )
{
        for ( int i = 0; i < row; i ++ )
                delete [] matr[i];
        delete [] matr;
 
        std::cout << "\nEnter new row: ";
        std::cin >> row;
        std::cout << "\nEnter new column: ";
        std::cin >> column;
 
        matr = new int* [ row ];
        for ( int i = 0; i < row; i ++ )
                matr[i] = new int [ column ];
        input_rand(matr, row, column );
}
 
void input ( int ** matr, int row, int column )
{
        for ( int i = 0; i < row; i ++ )
                for ( int j = 0; j < column; j ++ )
                {
                        std::cout << "Input matrix[ " << i << " ][ " << j << " ]: ";
                        std::cin >> matr[i][j];
                        std::cout << std::endl;
                }
 
}
 
int find_max ( int ** matr, int row, int column )
{
    int max = matr[0][0];
    for ( int i = 0; i < row; i ++ )
        for ( int j = 0; j < column; j ++ )
            if ( max < matr[i][j] ) max = matr[i][j];
    std::cout << "\nMaximum of matrix = " << max << std::endl;
    return max;
}
 
void change ( int ** matrix, int row, int column, int max )
{
    for ( int i = 0; i < row; i ++ )
        for ( int j = 0; j < column; j ++ )
        {
            if ( matrix[i][j] == max ) //  если найден максимальный элемент - входим во внутренний цикл
            {
                for ( int k = 0; k < column; k ++ ) // еще раз пробегаем по всей строке
                    if ( matrix[i][k] != max ) matrix[i][k] = 0;  // если элемент не равен максимуму - заменить на 0
                break;   // досрочный выход из цикла for ( int j = 0; j < column; j ++ )
            }
        }
    std::cout << "Change complite!\n";
}
Yandex
Объявления
06.12.2011, 10:57     Найти наибольший элемент в каждом из двух массивов
Ответ Создать тему
Опции темы

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