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

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

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

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

30.11.2013, 23:40. Просмотров 247. Ответов 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;
              }
 
}
Его задание вывести массив, который состоит из максимальных значений каждой строчки матрицы!
У меня выводит только одно максимальное значение всей матрицы! Как поменять, чтобы выводило максимальное для каждой строчки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 23:40     Обработка матриц
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
30.11.2013, 23:56     Обработка матриц #2
когда i увеличивается на 1, нужно обнулить переменную max
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;
            }
        
    }
}
А как теперь преобразовать, чтобы работало для столбцов? Тоесть в массив записать максимальные числа в каждом столбце?
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 номер нужного столбца
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;
            }
        
    }
по идее должно работать
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 Посмотреть сообщение
по идее должно работать
спасибо огромное
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 01:09     Обработка матриц
Еще ссылки по теме:

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

обработка матриц - C++
Получить квадратную матрицу порядка n: 1111...1 222...2 33...3 . ..........0 Помогите пожалуйста решить задачу,...

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

Обработка матриц - C++
Помогите кому не лень) Ввести двумерный массив {A}_{3x5}. Определить в нём среднее геометрическое элементов, у которых оба индекса...


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

Или воспользуйтесь поиском по форуму:
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 - номер столбца
Yandex
Объявления
01.12.2013, 01:09     Обработка матриц
Ответ Создать тему
Опции темы

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