Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 02:06   #1
Paul11j
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 19
По умолчанию матрица на c++

задача состоит в следующем: "дана квадратная матрица.первый элемент сделать последним,второй - предпоследним и т.д."
подскажите,пожалуйста в чем моя ошибка.или может кто-то знает алгоритм проще.
вот наработка(c++):
Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main(){
clrscr();
int a[5][5];
int i,j,tmp,t;
randomize();
for(i=1;i<6;i++){
	for(j=1;j<6;j++){
		a[i][j]=random(10);
	}
}
for(i=1;i<6;i++){
	for(j=1;j<6;j++){
	cout<<a[i][j]<<" ";
	}
	cout<<endl;
}
cout<<endl;
t=5;
for(i=1;i<6;i++){
	int k=5;
	for(j=1;j<6;j++){
		int tmp=a[i][j];
		a[i][j]=a[t][k];
		a[t][k]=tmp;
		k--;
	}
	t--;
}
for(i=1;i<6;i++){
for(j=1;j<6;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
getch();
}
Paul11j вне форума Ответить с цитированием
Старый 21.12.2010, 04:35   #2
KEA0301
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 28
По умолчанию

Ну самое главное запомни: индексация в языке C/C++ начинается с 0!!! А вообще что считать последним или первым элементом в матрице?
KEA0301 вне форума Ответить с цитированием
Старый 21.12.2010, 04:46   #3
kenwood2010
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 97
По умолчанию

Все это исправь:
Код:
for(i=1;i<6;i++) на 
for(i=0;i<5;i++)
начнешь работать с динамическим выделением памяти - поплывешь.

a[i][j]
i - строка
j - столбец

a[0][0] - первый элемент в матрице;
a[0][1] - второй элемент в матрице.

a[4][3] - предпоследний
a[4][4] - последний
ну и логически:
a[4][3] = a[0][1];
a[4][4] = a[0][0];
kenwood20072@rambler.ru ICQ: 701 302 135. (Программирование на C++, С. Решение задач по физике)

Последний раз редактировалось kenwood2010; 21.12.2010 в 04:50.
kenwood2010 вне форума Ответить с цитированием
Старый 21.12.2010, 09:31   #4
Paul11j
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 19
По умолчанию

я поменял,но теперь после обработки выводит такой же массив как и начальный.
Цитата:
А вообще что считать последним или первым элементом в матрице?
первый элемент a[0][0], последний a[n][n]. соответственно второй a[0][1], предпоследний a[n][n-1]
Paul11j вне форума Ответить с цитированием
Старый 21.12.2010, 18:08   #5
KEA0301
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 28
По умолчанию

Тебе надо делать перестановку до середины массива, иначе ты поменяешь элементы между собой 2 раза, что не принесет никакого результата. И вместо k и t лучше использовать 5-j и 5-i соответственно.
KEA0301 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Матрица Sarumjan Помощь студентам 1 21.05.2009 06:15
Матрица jorjinho10 Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2009 15:18
МАТРИЦА (СИ) Freia Помощь студентам 5 19.12.2008 22:39