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

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

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

Матрицы - C++

19.01.2011, 22:20. Просмотров 327. Ответов 2
Метки нет (Все метки)

Дана квадратная матрица А порядка М. Найти максимальный элемент для каждой её диагонали, параллельной побочной (начиная с одноэлементной диагонали А[1,1])

Помогите пожалуйста, оттолкнуться....
У матрицы ведь есть побочная диагональ, у которой есть две параллельные... одна находится выше побочной, другая ниже....
Нужно создать две функции? Одна находит макс. значение, которое выше побочной, а другая ниже побочной? или можно всё в одну заделать?
Помогите мне пожалуйста только сам алгоритм написать (функцию).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 22:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрицы (C++):

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В - C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней...

Поменять большие элементы в строке матрицы с маленькими элементами этой же матрицы - C++
Дана мне задача надо заменить большие элементы в строке матрицы с маленькими элементами этой же матрицы. Помогите пацаны

Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии матрицы - C++
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами 3. Дана матрица размера M x N. Зеркально...

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

Для матрицы найти такие k, что k-я строка матрицы совпадает с k-м столбцом - C++
Помогите решить задачку Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти...

Найти количество элементов матрицы, которые совпадают с элементами другой матрицы - C++
Помогите найти количество элементов 2 мерного массива, которые совпадают с элементами другого аналогичного массива. Массив 5х3.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
killboss
60 / 60 / 2
Регистрация: 18.12.2010
Сообщений: 127
19.01.2011, 22:26 #2
Цитата Сообщение от Rooney Посмотреть сообщение
или можно всё в одну заделать?
Конечно в одну функцию, только выбор между диагоналями можно, к примеру, задавать через флаг (tru, false).
Rooney
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 37
20.01.2011, 09:02  [ТС] #3
Цитата Сообщение от killboss Посмотреть сообщение
Конечно в одну функцию, только выбор между диагоналями можно, к примеру, задавать через флаг (tru, false).
Так надо без выбора надо и для верхней и для нижней найти максимум....
отдельно цикл для верхней, и отдельно для нижней?

Добавлено через 43 минуты
killboss,
как мне это реализовать в функции?
допустим во начальное описание, до самого главного алгоритма...

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
#include<windows.h>
#include<iomanip>
#include<iostream>
#include<fstream>
# define NMAX 100
 
using namespace std;
const int mmax=100,
          nmax=100; 
 
void matr(int matrix[][nmax],int M, char name[]);
void output_matrix (int matrix[][nmax],int M);
void smatrix (int matrix[][nmax],int M);
 
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        int matrix[mmax][nmax];
        int M=0;                      // число строк матрицы
        char name[] = "Matrix92.txt";
        cout << "Введите порядок матрицы:" << endl;
        cin >> M;
        matr(matrix,M,name);
        cout << "Данная матрица:" << endl;
        output_matrix (matrix,M);
        smatrix (matrix,M);
        cout << "Матрица после сортировки: " << endl;
        output_matrix (matrix,M);
        system("pause");
        return 0;
      
}
 
void matr(int matrix[][nmax],int M, char name[]){
      for (int i=0; i < M; i++){
            for (int j=0; j < M; j++){
                // cin >> matrix[i][j];
                matrix[i][j]=1;
            }
      }
}
 
 
void output_matrix (int matrix[][nmax],int M){
     for (int i = 0; i < M; i++){ 
          for (int j = 0; j < M; j++){
               cout << setw(3) << matrix[i][j] << " ";
          }
          cout << endl;
     }
}
 
void smatrix (int matrix[][nmax],int M){
                
 
 
 
}
Вы не можете помочь составить алгоритм, реализующий данное условие?

Добавлено через 9 часов 50 минут
Пожалуйста, оцените решение:

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
#include<windows.h>
#include<iomanip>
#include<iostream>
#include<fstream>
# define NMAX 100
 
using namespace std;
const int mmax=100,
          nmax=100; 
 
void matr(int matrix[][nmax],int M, char name[]);
void output_matrix (int matrix[][nmax],int M);
void smatrix (int matrix[][nmax],int M,int &maxL,int &maxN);
 
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        int matrix[mmax][nmax];
        int M=0;                      // порядок матрицы
        char name[] = "Matrix87.txt";
        int maxL , maxN;
        cout << "Введите порядок матрицы:" << endl;
        cin >> M;
        matr(matrix,M,name);
        cout << "Данная матрица:" << endl;
        output_matrix (matrix,M);
        smatrix (matrix,M,maxL,maxN);
        cout << endl <<"Максимальный элемент диагонали 1: " << maxL<<endl;
        cout << "Максимальный элемент диагонали 2: " << maxN<<endl;
        system("pause");
        return 0;
      
}
 
void matr(int matrix[][nmax],int M, char name[]){
      ifstream in(name);
      for (int i=0; i < M; i++){
            for (int j=0; j < M; j++){
                 in >> matrix[i][j];
            }
      }
      in.close();
} 
 
void output_matrix (int matrix[][nmax],int M){
     for (int i = 0; i < M; i++){ 
          for (int j = 0; j < M; j++){
               cout << setw(3) << matrix[i][j] << " ";
          }
          cout << endl;
     }
}
 
void smatrix (int matrix[][nmax],int M,int &maxL,int &maxN){
                bool haveMaxL =false;
                bool haveMaxN =false;
                for(int i =M-2,j=0; i>=0;i--,j++){     // верхняя, параллельная побочной
                            if (!haveMaxL || maxL < matrix[i][j]){
                                 maxL = matrix[i][j];
                                 haveMaxL = true;
                            }
                } 
                for(int i=M-1,j=1; i>0;i--,j++){   // нижняя, параллельная побочной
                            if (!haveMaxN || maxN < matrix[i][j]){
                                 maxN = matrix[i][j];
                                 haveMaxN = true;
                            }
                }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2011, 09:02
Привет! Вот еще темы с ответами:

Сформировать одномерный массив из диагональных элементов матрицы. Найти след матрицы - C++
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы...

Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера. - C++
Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера.

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

Для матрицы найти такие k, что k-я строка матрицы совпадает с k-м столбцом - C++
Помогите пожалуйста с первой частью задания: найти такие k. что k -строка матрицы совпадает с k-м столбцом. При компиляции выдается...


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

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

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