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

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

Войти
Регистрация
Восстановить пароль
 
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
#1

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

30.11.2011, 09:52. Просмотров 379. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста!потерял лекцию по подропграммам в си,а задание нужно срочно сдать
Ввести двумерные массивы 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) – поиск координат максимума)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти наибольший элемент в каждом из двух массивов (C++):

Найти наибольший элемент в каждом столбце матрицы - C++
Помогите найти наибольшее число в каждом столбце матрицы #include "stdafx.h" #include <stdio.h> #include...

В двумерном массиве А[5, 4] найти в каждом столбце наибольший (максимальный элемент) - C++
В двумерном массиве А найти в каждом столбце наибольший (максимальный элемент). После этого определить столбец у которого максимальный...

В двумерном массиве А[5, 4] найти в каждом столбце наибольший (максимальный элемент) - C++
В двумерном массиве А найти в каждом столбце наибольший (максимальный элемент). После этого определить столбец у которого максимальный...

Найти наибольший элемент в каждом столбце матрицы и непер наименьшего из них? - C++
Найти наибольший элемент в каждом столбце матрицы и непер наименьшего из них?

Найти в каждом столбце наибольший элемент и поменять его местами с элементом главной диагонали - C++
Задана матрица порядка n. Найти в каждом столбце наибольший элемент и поменять его местами с элементом главной диагонали.

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

6
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 09:56 #2
а обязательно на Си?
0
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
30.11.2011, 10:07  [ТС] #3
да можно и на паскале ,не так критично,но в си предпочтительнее)
0
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:34 #4
паскаль я тем более не знаю.
на плюсах могу шарахнуть
0
PomkaPomka
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 46
30.11.2011, 10:52  [ТС] #5
тогда хоть в си пжласт)
а в си от си++ есть разница?
0
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
30.11.2011, 10:54 #6
еще как!
ну си я знаю весьма херово так что не судьба
0
co6ak
Кошковед
408 / 501 / 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";
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 10:57
Привет! Вот еще темы с ответами:

В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести...

В каждом из заданных массивов найти наибольшее значение, и разделить на него все элементы массивов - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и разделить на него все элементы массивов. На печать вывести...

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

Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные - C++
Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать...


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

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

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