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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2013, 16:31   #1
Niklitel
Пользователь
 
Регистрация: 30.10.2013
Сообщений: 19
По умолчанию функции и масссивы с++

оформить транспонирование квадратной матрицы как функцию
и проверить ее на симметричность (тоесть совпадает ли начальная матрица с транспонированной), симметричность оформить как функцию.
не могу понять почему неправильно работает, подскажите пожалуйста=(
Код:
#include <iostream>
#include <conio.h>
int trans(int **x,int nx)
{ int i,j,s,**h;
  h=new int*[nx];
  for (i = 0; i<nx; i++){
	  h[i]=new int [nx];
  }
  for (i = 0; i<nx; i++) {
	  for (j=0; j<nx; j++) {
		  h[i][j]=x[j][i];
	  }
  }
  return **h;
}
int simm(int **x,int **t,int nx)
{ int i,j;
  for (i=0; i<nx; i++){
	  for (j=0; j<nx; j++) {
		  if (x[i][j]!=t[i][j]) 
			  return 0;
	  }
  }
  return 1;
}
int main ()
{ setlocale(LC_ALL, "rus");
  using namespace std;
  int **a,**b,**c,**s;
  int i,j,n;
  cout<<"введите размерность квадратной матрицы a"<<endl;
  cin>>n;
  cout<<"введите элементы квадратной матрицы a"<<endl;
  a=new int*[n];
  for (i = 0; i<n; i++){
	  a[i]=new int [n];
	  for (j = 0; j<n; j++){
		  cin>>a[i][j];
	  }
  }
  s=new int*[n];
  for (i = 0; i<n; i++){
	  s[i]=new int [n];
  }
  **s=trans(a,n);
  for (i = 0; i<n; i++) {
	  for (j = 0; j<n; j++){
		  cout<<s[i][j];
	  }
  }
  if (simm(a,s,n)==1){
	  cout<<"матрица а симметричная"<<endl;
  }
  else cout<<"матрица а несимметричная"<<endl;
getch ();
  return 0;
}
Niklitel вне форума Ответить с цитированием
Старый 13.11.2013, 06:18   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

один массив создали,другой создали..зачем так много?
Код:
#include <iostream>
#include <conio.h>
void trans(int **x,int nx,int **s)
{ int i,j;
    for (i = 0; i<nx; i++) 
	  for (j=0; j<nx; j++) 
	  			  s[i][j]=x[j][i];
}

int simm(int **x,int **t,int nx)
{ int i,j;
  for (i=0; i<nx; i++){
	  for (j=0; j<nx; j++) {
		  if (x[i][j]!=t[i][j]) 
			  return 0;
	  }
  }
  return 1;
}
int main ()
{ setlocale(LC_ALL, "rus");
  using namespace std;
  int **a,**s;
  int i,j,n;
  cout<<"введите размерность квадратной матрицы a"<<endl;
  cin>>n;
  cout<<"введите элементы квадратной матрицы a"<<endl;
  a=new int*[n];
  for (i = 0; i<n; i++){
	  a[i]=new int [n];
	  for (j = 0; j<n; j++){
		  cin>>a[i][j];
	  }
  }
  s=new int*[n];
  for (i = 0; i<n; i++){
	  s[i]=new int [n];
  }
  trans(a,n,s);
  for (i = 0; i<n; i++) {
	  for (j = 0; j<n; j++){
		  cout<<s[i][j];
	  }cout<<endl;
  }
  if (simm(a,s,n)==1){
	  cout<<"матрица а симметричная"<<endl;
  }
  else cout<<"матрица а несимметричная"<<endl;
getch ();
free(a);
free(s);//верните память,а то обидетсо

  return 0;
}
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 13.11.2013 в 06:26.
SaLoKiN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Табулирование заданной функции и определение максимального и минимального значения функции в таблице Марина1986 C/C++ Сетевое программирование 0 07.05.2013 11:31
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) RealUnited Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2012 20:34
Построение графика функции, мигание(затухание) шарика в минимумах функции kas1m_rus Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2012 20:28
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10