|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2010, 15:57 | #1 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 21
|
Повернуть матрицу относительно побочной диагонали
Компилятор Borland C++ 3.1
Сразу предупрежу, что я правда только новичок...только 1 семестр у нас программирование пока что идет...вот) Никак не получается... Вообщем задача такая: Имеется квадратная матрица (не менее, чем 6х6). Ввести элементы,распечатать. Повернуть относительно побочной диагонали, за исключением элементов, расположенных в первых и последних строках и столбцах. Дополнительных массивов не создавать. Распечатать результирующий массив. Я матрицу ввожу 6х6. Она у меня такая, чтобы видеть, перевернулась или нет: 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 сам текст программы: #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { clrscr(); float ** a; int M, N, i, j; cout << "Vvedite kol-vo strok i stolbcov matrici" << endl; cin >> M >> N; a=new float* [M]; for(i=0;i<M;i++) { a[i]=new float[N]; } //=================================== ============================= for(i=0;i<M;i++) for(j=0;j<N;j++) { cout << "Vvedite elementi stroki: " << i << " i stolbca: " << j << endl; cin >> a[i][j]; } //=================================== ============== for(i=0;i<M;i++) { cout << endl; for(j=0;j<N;j++) cout << setw(8) << a[i][j]; } cout << endl; //=================================== ============== int t; for(i=M-i;i<M-j-1;i++) for(j=N-j;j<N-i-1;j++) { if(a[M-i][N-j]<a[M-j-1][N-i-1]) { t=a[i][j]; a[i][j]=a[M-j][N-i]; a[M-j][N-i]=t; } } //=================================== ============== cout << endl; cout << "Novii massiv" << endl; for (i=0;i<M;i++) { cout << endl; for (j=0;j<N;j++) cout << setw(8) << a[i][j]; } cout << endl; cout << "Nagmite lubuy klavishu" << endl; getch(); } Там, где выделено красным, там проблемы...
— Марвин, ты спас нам жизнь!
— Кошмар, правда? (с) The Hitchhiker's Guide to the Galaxy Последний раз редактировалось Purr; 18.05.2010 в 16:11. |
18.05.2010, 16:16 | #2 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 21
|
Или всё-таки сначала нужно ввести элементы первой половины матрицы до диагонали и отразить их?
— Марвин, ты спас нам жизнь!
— Кошмар, правда? (с) The Hitchhiker's Guide to the Galaxy |
18.05.2010, 17:04 | #3 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 125
|
А я думаю можно так:
-цикл по строкам (всем) -цикл по столбцам (всем) -- проверка чтобы индексы i<> 1 и j<>1, а также i<> N и j<>N (таким образом исключаем крайние строки и столбцы) -- проверка чтобы сумма i+j<N (так проходим по всем элментам левой половины относительно матрицы побочной диагонали) -- меняем местами с помощью доп. переменной в которую заносим значение a[i][j], а значение a[i][j] изменится на a[n+1-j][n+1-i], ну а a[n+1-j][n+1-i] на значение хранящиеся в переменной (т.е. a[4][2] в матрице размером n=6 поменяется значением с а[6+1-2][6+1-4], т.е.а[5][3] ) дерзай...! |
18.05.2010, 17:54 | #4 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 21
|
Попробовала. Он мне меняет только левую часть на какие-то страшные цифры с экспонентами...
— Марвин, ты спас нам жизнь!
— Кошмар, правда? (с) The Hitchhiker's Guide to the Galaxy |
18.05.2010, 18:46 | #5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Соревнование "Кто придумает самый запутанный алгоритм решения элементарной задачи?"...
Код:
|
18.05.2010, 18:56 | #6 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 21
|
Спасибо огромное!!!
Всё отлично!!!..
— Марвин, ты спас нам жизнь!
— Кошмар, правда? (с) The Hitchhiker's Guide to the Galaxy Последний раз редактировалось Purr; 18.05.2010 в 18:58. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Транспонирование матрицы относительно побочной диагонали | CodeExpert | Помощь студентам | 2 | 18.01.2010 10:28 |
Максимальный элемент побочной диагонали матрицы | Mariya0202 | Помощь студентам | 8 | 16.10.2009 09:05 |
подсчитывать сумму главной и побочной диагонали | Fantazerishka | Помощь студентам | 2 | 14.10.2009 21:55 |
Сортировка побочной диагонали Pascal | Erges | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 10.09.2009 12:15 |
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы | Elmander | Помощь студентам | 2 | 21.06.2007 07:15 |