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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 21:59   #1
Sergey240892
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 33
Вопрос найдите ошибку

Мне нужно било через функцию просумировать две матрицы, их суму транспонировать. Я попытался написать, но у меня она не роботает.
Помогите чем зможите, пожалуйста .
Код:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
int summa(int* a, int* b );
int main()
{
int n=3, m=4,i=0,j=0;


   int** a= new int* [n];
   for (i=0; i<n; i++)
      a[i] = new int[m];
   for (i=0; i<n; i++)
      for (j=0; j<m; j++)
	 cin>>a[i][j];

   int** b= new int* [n];
   for (i=0; i<n; i++)
      b[i] = new int[m];
   for (i=0; i<n; i++)
      for (j=0; j<m; j++)
	 cin>>b[i][j];


   int** c= new int* [n];
   for (i=0; i<n; i++)
      c[i] =new int[m];
   for (i=0;i<n;i++)
   for(j=0;j<m;j++)
   int* c[][]=summa(a[],b[]);


   for (i=0; i<m; i++)
      {cout<<"\n";
      for (j=0; j<n; j++)
      cout<<" "<<c[j][i];}

   delete []a;
   delete []b;
   delete []c;

   getch();

 return 0;
}
 int summa(int* a[],int* b[])
     {
     int i=0, j=0, n=3, m=4;
 int* c[]=1;
 for(i=0;i<n;i++)
 for(j=0;j<m;j++)
  c[i][j]=a[i][j]+b[i][j];
  return c[i][j];
      }

Последний раз редактировалось ACE Valery; 01.03.2011 в 02:39.
Sergey240892 вне форума Ответить с цитированием
Старый 01.03.2011, 10:08   #2
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию

ужасэ. Функция суммы возвращает как ни странно один элемент c[i][j]. На остальное смотреть не стал
casekey вне форума Ответить с цитированием
Старый 01.03.2011, 15:28   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
   int** c= new int* [n];
   for (i=0; i<n; i++)
      c[i] =new int[m];
   for (i=0;i<n;i++)
   for(j=0;j<m;j++)
   int* c[][]=summa(a[],b[]);
Тебе не кажется, что в скобках должны стоять индексы, а тип функции (int*) тут вообще ни к чему?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 01.03.2011, 16:17   #4
Sergey240892
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 33
По умолчанию

вот так?
int** c= new int* [n];
for (i=0; i<n; i++)
c[i] =new int[m];
for (i=0;i<n;i++)
for(j=0;j<m;j++)

c[i][j]=summa(a[i][j],b[i][j]);

Последний раз редактировалось Sergey240892; 01.03.2011 в 21:50.
Sergey240892 вне форума Ответить с цитированием
Старый 03.03.2011, 18:50   #5
Sergey240892
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 33
По умолчанию

Я тут поисправлял, токо она чтото зацыкливается
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int** summa(int** a,int** b );
int main()
{
int n=3, m=4,i=0,j=0;


int** a= new int* [n];
for (i=0; i<n; i++)
a[i] = new int[m];
for (i=0; i<n; i++)
for (j=0; j<m; j++)
cin>>a[i][j];

int** b= new int* [n];
for (i=0; i<n; i++)
b[i] = new int[m];
for (i=0; i<n; i++)
for (j=0; j<m; j++)
cin>>b[i][j];


int** c= new int* [n];
for (i=0; i<n; i++)
c[i] =new int[m];
for (i=0;i<n;i++)
for(j=0;j<m;j++)

c=summa(a,b);

for (i=0; i<m; i++)
{cout<<"\n";
for (j=0; j<n; j++)
cout<<" "<<c[j][i];}

delete []a;
delete []b;
delete []c;

getch();

return 0 ;
}
int** summa(int** a,int** b)
{

int** c;
int i=0, j=0, n=3, m=4;


for(i=0;i<n;i++)
for(j=0;j<m;j++)

c[i][j]= a[i][j]+ b[i][j];

return c ;
}
Sergey240892 вне форума Ответить с цитированием
Старый 03.03.2011, 19:01   #6
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Я тут поисправлял, токо она чтото зацыкливается
еще бы. Если я не ошибаюсь достаточно одного раза вызвать функцию для суммирования матриц.
а у вас
Код:
for (i=0;i<n;i++)
for(j=0;j<m;j++)

c=summa(a,b);

Последний раз редактировалось Летучий_СкилетиК; 03.03.2011 в 19:12.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 03.03.2011, 19:13   #7
Sergey240892
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 33
По умолчанию

Я убрал но ничего не изменилось
Sergey240892 вне форума Ответить с цитированием
Старый 03.03.2011, 19:25   #8
Sergey240892
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 33
По умолчанию

Run-Time Check Failure #3 - The variable 'c' is being used without being initialized-пишет такую ошыбку
Sergey240892 вне форума Ответить с цитированием
Старый 03.03.2011, 19:30   #9
pwian
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 21
По умолчанию

а попробуй в своей функции summa добавить:
int** c= new int* [n];
for (i=0; i<n; i++)
c[i] =new int[m];
Или что-то в этом роде
pwian вне форума Ответить с цитированием
Старый 03.03.2011, 19:31   #10
pwian
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 21
По умолчанию

Просто я смотрю ты это сделал для a,b и c в main'е, а там забыл
pwian вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку #Sharp# Паскаль, Turbo Pascal, PascalABC.NET 7 23.12.2010 14:35
Найдите ошибку MaJlbBuHa Паскаль, Turbo Pascal, PascalABC.NET 2 20.10.2009 23:26
Найдите ошибку! geniy JavaScript, Ajax 4 04.12.2007 16:22