1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|||||||||||
1 | |||||||||||
поменять местами элементы главной и побочной диагоналей27.04.2019, 07:59. Показов 2162. Ответов 11
Метки нет Все метки)
(
Здравствуйте. Мне нужно поменять местами элементы главной и побочной диагоналей, без выделения динамической памяти это делается так:
0
|
|
27.04.2019, 07:59 | |
Ответы с готовыми решениями:
11
7*7 вещественный Поменять местами элементы главной и побочной диагоналей матрицы Поменять местами максимальный и минимальный элементы главной и побочной диагоналей Найти максимальные элементы главной и побочной диагоналей матрицы и поменять их местами |
1999 / 1118 / 473
Регистрация: 11.10.2018
Сообщений: 5,707
|
|
27.04.2019, 08:25 | 2 |
Проблема в том, что к указателю просто так нельзя прибавить число i - как номер элемента массива. Если у Вас массив float, то он занимает несколько байт: 4 или 8 - в зависимости от системы, ну типа она 32- или 64-битная. Поэтому тут нужно либо учитывать это и умножать i на количество, занимаемое float - определяется sizeof, либо использовать итераторы.
0
|
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|
27.04.2019, 08:29 [ТС] | 3 |
Можно кодом, пожалуйста.
0
|
1999 / 1118 / 473
Регистрация: 11.10.2018
Сообщений: 5,707
|
|
27.04.2019, 08:31 | 4 |
Ну ты сам головой подумай - я же все написал.
0
|
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|
27.04.2019, 08:33 [ТС] | 5 |
так что ли?
float m = *((A + i * N + i)*(sizeof(float)));
0
|
7424 / 5019 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
|
||||||
27.04.2019, 08:37 | 6 | |||||
0
|
Прощай, Мир!
1672 / 829 / 253
Регистрация: 26.05.2012
Сообщений: 3,057
|
|
27.04.2019, 08:37 | 7 |
[del]
0
|
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|
27.04.2019, 09:00 [ТС] | 8 |
Выдаёт ошибку операнд * должен быть указателем
Добавлено через 11 минут Что тогда делать?
0
|
7424 / 5019 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
|
|
27.04.2019, 09:05 | 9 |
0
|
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|
27.04.2019, 09:08 [ТС] | 10 |
#include <iostream>
using namespace std; int main() { setlocale(LC_ALL, "Russian"); int N; cout << "\nВведите размерность матрицы "; cin >> N; cout << endl; float *A = new float [N]; for (int i = 0; i < N; i++) { cout << "Элементы " << i + 1 << " строки: "; for (int j = 0; j < N; j++) { cin >> *(A + i * N + i); } } cout << "\nИсходная матрица:\n\n"; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) cout << "\t" << A[i][j]; cout << endl << endl; } for (int i = 0; i < N; i++) { float m = *(A + i * N + i); *(A + i * N + i) = *(A + i * N - i - 1); *(A + i * N - i - 1) = m; } cout << "\n Матрица, где элементы главной и побочной диагонали поменяны местами:\n\n"; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) cout << "\t" << *(A + i * N + i); cout << endl << endl; } delete[] A; system("pause"); return 0; }
0
|
7424 / 5019 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
|
||||||
27.04.2019, 09:18 | 11 | |||||
![]() Решение
Yki_Sakura, у Вас матрица одномерная
с двумерной всё работает:
2
|
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 28
|
|
27.04.2019, 09:21 [ТС] | 12 |
спасибо
![]()
0
|
27.04.2019, 09:21 | |
Помогаю со студенческими работами здесь
12
Переставить местами элементы главной и побочной диагоналей
Поменять местами максимальный элемент главной и побочной диагоналей с элементом, расположенным на пересечении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |