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

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

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

Обработка матриц - C++

30.11.2013, 23:40. Просмотров 275. Ответов 6
Метки нет (Все метки)

Имеется код!
C++
1
2
3
4
5
6
7
8
9
10
void maxToArr(int ar[],int matr[][COLS], int nRow, int nCol){
    int max=matr[0][0];
    for(int i=0;i<nRow;i++)
        for(int j=0; j<nCol; j++)
            if(max<matr[i][j]){
                max=matr[i][j];
                ar[i]= max;
              }
 
}
Его задание вывести массив, который состоит из максимальных значений каждой строчки матрицы!
У меня выводит только одно максимальное значение всей матрицы! Как поменять, чтобы выводило максимальное для каждой строчки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 23:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка матриц (C++):

Обработка матриц - C++
Помогите дописать код программы вот условие:Вычислить сумму и число элементов матрицы, находящихся под главной диагональю и на ней. В (N,...

Обработка матриц - C++
Добрый день, помогите. Дана целочисленная матрица MxN.Найти элемент,являющийся максимальный в своей строке и минимальный в своем...

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

Обработка матриц - C++
Уважаемые форумчане помогите с задачей. Определить максимальный елемент матрици {Si,j}6,3.Вывести его значения и индекси.

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

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

6
FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
30.11.2013, 23:56 #2
когда i увеличивается на 1, нужно обнулить переменную max
1
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
01.12.2013, 00:26  [ТС] #3
Цитата Сообщение от FAQEnD Посмотреть сообщение
когда i увеличивается на 1, нужно обнулить переменную max
Для строк работает!
C++
1
2
3
4
5
6
7
8
9
10
11
12
void maxToArr(int ar[],int matr[][COLS], int nRow, int nCol){
    int max=matr[0][0];
    for(int i=0;i<nRow;i++){
        max=0;
        for(int j=0; j<nCol; j++)
            if(max<matr[i][j]){
                max=matr[i][j];
                ar[i]= max;
            }
        
    }
}
А как теперь преобразовать, чтобы работало для столбцов? Тоесть в массив записать максимальные числа в каждом столбце?
0
h8er
15 / 15 / 5
Регистрация: 20.11.2013
Сообщений: 92
01.12.2013, 00:33 #4
C++
1
2
if(max<matr[i*nCol][j]){
                max=matr[i*nCol][j];
под j номер нужного столбца
0
FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
01.12.2013, 00:34 #5
Цитата Сообщение от yurets17 Посмотреть сообщение
А как теперь преобразовать, чтобы работало для столбцов? Тоесть в массив записать максимальные числа в каждом столбце?
А для столбцов нужно в цикле поменять местами i, j
Вот так:
C++
1
2
3
4
5
6
7
8
9
for(int i=0;i<nRow;i++){
        max=0;
        for(int j=0; j<nCol; j++)
            if(max<matr[j][i]){
                max=matr[j][i];
                ar[i]= max;
            }
        
    }
по идее должно работать
1
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
01.12.2013, 00:43  [ТС] #6
Цитата Сообщение от h8er Посмотреть сообщение
C++
1
2
if(max<matr[i*nCol][j]){
                max=matr[i*nCol][j];
под j номер нужного столбца
имеешь ввиду так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
void maxToArr(int ar[],int matr[][COLS], int nRow, int nCol){
    int max=matr[0][0];
    for(int i=0;i<nRow;i++){
        max=0;
        for(int j=0; j<nCol; j++)
            if(max<matr[i*nCol][j]){
                            max=matr[i*nCol][j];
                ar[i]= max;
            }
 
    }
}
Добавлено через 4 минуты
Цитата Сообщение от FAQEnD Посмотреть сообщение
по идее должно работать
спасибо огромное
0
h8er
15 / 15 / 5
Регистрация: 20.11.2013
Сообщений: 92
01.12.2013, 01:09 #7
Одним циклом
C++
1
2
        for(int i=0; i<nRow; i++)
                max += matr[i*nCol][j];
В max запишет сумму столбца, j - номер столбца
0
01.12.2013, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 01:09
Привет! Вот еще темы с ответами:

Обработка матриц - C++
В матрице Z(5,6) первый отрицательный элемент каждого столбца заменить суммой оставшихся. Отрицательные элементы до замены вывести в массив...

Обработка матриц - C++
Помогите пожалуйста! Написать процедуру, которая принимает на входе двумерную матрицу вещественных чисел (кол-во строк и столбцов не...

Обработка матриц - C++
помогите решить проблему, не могу понять, как сделать так, чтобы вводить размер матрицы с клавиатуры: вот мой код: #include...

Обработка матриц в с++ - C++
даны матрицы D размерностью m*n, E n*k и число a. найти значение выражения: D*a*E проверить свойство матриц: a*(A+B)=aA+aB это надо...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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