Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Dilleo
1 / 1 / 0
Регистрация: 01.05.2016
Сообщений: 13
#1

Работа с квадратными матрицами - C++

01.05.2016, 07:35. Просмотров 387. Ответов 3
Метки нет (Все метки)

Помогите решить пожалуйста!
1)Дана матрица размера M ×N (N —четное число).Поменять местами левую и правую половины матрицы.
2)Дана квадратная матрица A порядка M. Найти среднее арифметическое элементов каждой ее диагонали, параллельной побочной (начиная с одноэлементной диагонали A1,1).
3)Дана квадратная матрица A порядка M. Зеркально отразить ее элементы относительно побочной диагонали. (при этом элементы побочной диагонали останутся на прежнем месте, элемент A1,1 поменяется местами с AM,M, элемент A1,2 — с AM−1,M и т.д.). Вспомогательную матрицу не использовать
http://www.cyberforum.ru/cpp-beginners/thread302203.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2016, 07:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с квадратными матрицами (C++):

Работа с матрицами
Мне необходимо заполнить матрицу размера 9 на 9 случайными числами и повернуть...

Работа с матрицами
#include<iostream> #include "math.h" using namespace std; double...

Работа с for и матрицами
Помогите пожалуйста, есть задача: Дана матрица 8х8, нужно поделить каждый...

Работа с файлами и матрицами
Всем здравствуйте! У меня есть проблема. Имеется такое задание: В заданной...

Работа с двухмерными матрицами
Дана квадратная матрица целых чисел размером NxM. N - нечетное число от 5 до...

3
Fixer_84
825 / 635 / 645
Регистрация: 30.04.2016
Сообщений: 2,108
01.05.2016, 13:16 #2
Dilleo, вот ответ на первую задачу. Остальные два будут в течение часа.

Добавлено через 1 минуту
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
int M, N;
cout << "Введите размер массива:" << endl;
cout << "M = ";
cin >> M;
cout << "N = ";
cin >> N;
int A[M][N];
cout << "Введите массив:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
cin >> A[i][j];
}
}
for (int j = 0; j < M; j++)
{
for (int i = 0; i < N / 2; i++)
{
swap(A[j][i], A[j][N/2+i]);
}
}
cout << "Матрица после обмена:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
system("pause");
return 0;   
}
Добавлено через 1 час 23 минуты
Dilleo, ниже ответы на задачи 2 и 3.

Добавлено через 4 минуты
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    
int M, sum;
cout << "Введите размер массива:" << endl;
cout << "M = ";
cin >> M;
int A[M][M];
cout << "Введите массив:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < M; j++)
{
cin >> A[i][j];
}
}
for (int j = 0; j < M - 1; j++) 
{
sum = 0;
for (int i = 0; i < j + 1; i++) 
{
sum += A[j-i][i];
}
cout << "Диагональ №" << j + 1 << ": " << (float) sum / (j + 1) << endl;
}
for (int j = 1; j < M; j++)
{
sum = 0;
for (int i = 0; i < M - j; i++)
{
sum += A[M-1-i][i+j];   
}
cout << "Диагональ №" << M - 1 + j << ": " << (float) sum / (M - j) << endl;
}
system("pause");
return 0;   
}
Добавлено через 2 минуты
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
int M;
cout << "Введите размер массива:" << endl;
cout << "M = ";
cin >> M;
int A[M][M];
cout << "Введите массив:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < M; j++)
{
cin >> A[i][j];
}
}
for (int i = 0; i < M - 1; i++)
{
for (int j = 0; j < M - i - 1; j++)
{
swap(A[j][i], A[M-i-1][M-j-1]);
}
}
cout << "Матрица после поворота:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < M; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
system("pause");
return 0;   
}
1
Dilleo
1 / 1 / 0
Регистрация: 01.05.2016
Сообщений: 13
03.05.2016, 16:25  [ТС] #3
Fixer 84, можете пожалуйста вторую задачу проверить, там неправильно считает среднее арифметуческую элементов главной побочной диагонали! Заранее спасибо)
0
Fixer_84
825 / 635 / 645
Регистрация: 30.04.2016
Сообщений: 2,108
03.05.2016, 17:47 #4
Dilleo, я считал среднее арифметическое для всех диагоналей, параллельных побочной (так написано у вас в задании). Вам нужны все диагонали включая побочную?

Добавлено через 20 минут
Dilleo, на всякий случай вот код для всех диагоналей, параллельных побочной, включая побочную, если я понял вас правильно.

Добавлено через 2 минуты
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    
int M, sum;
cout << "Введите размер массива:" << endl;
cout << "M = ";
cin >> M;
int A[M][M];
cout << "Введите массив:" << endl;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < M; j++)
{
cin >> A[i][j];
}
}
for (int j = 0; j < M - 1; j++) 
{
sum = 0;
for (int i = 0; i < j + 1; i++) 
{
sum += A[j-i][i];
}
cout << "Диагональ №" << j + 1 << ": " << (float) sum / (j + 1) << endl;
}
sum = 0;
for (int i = 0; i < M; i++) 
{
sum += A[M-i-1][i];
}
cout << "Диагональ №" << M << ": " << (float) sum / M << endl;
for (int j = 1; j < M; j++)
{
sum = 0;
for (int i = 0; i < M - j; i++)
{
sum += A[M-1-i][i+j];   
}
cout << "Диагональ №" << M + j << ": " << (float) sum / (M - j) << endl;
}
system("pause");
return 0;   
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 17:47
Привет! Вот еще темы с решениями:

Работа с матрицами - завал(с++)
Необходимо сформировать и обработать двумерных массивов. Значение элементов...

работа с матрицами в файлах
Люди, помогите сделать задачи, очень прошу на языке С Задача 1. Дан файл...

Работа с матрицами. Ошибочка
class matrix{ private: double **Matrix; int Rows, Cells; public:...

Матрицы. Работа с матрицами
Дана матрица А размера 8*6. Найти элемент, котоpый встречается в массиве чаще...


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

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

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