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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 12:52   #1
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию Умножение матриц Си

Всем привет.
Люди задача состоит в том чтобы перемножить 2 матрицы через функцию.У меня есть код,нопочемуто в функцию матрицы зхаходят неверно т.е. не все элементы матрицы заходят правильно некоторые равняються нулю и вообще левым числам...Можете глянуть код плз)
Код:
#include <stdio.h>
void pro(int **a,int **b,int **c,int n)
{
int i,j,k,s;
		for(i=0;i<n;i++)
		for(j=0;j<n;j++){
		s=0;
		for(k=0;k<n;k++){
		s=s+a[i][k]*b[k][j]; printf("x=%i",a[i][k]);printf("y=%i",b[k][j]);  }
		c[i][j]=s;}
}
main()
{
int a[10][10],b[10][10],c[10][10],x[10][10];
int *as=&a[0][0],*bs=&b[0][0],*cs=&c[0][0],*xs=&x[0][0];
int **A=&as,**B=&bs,**C=&cs,**X=&xs;
int i,j,n;
		printf("vv n a zatem 1 masiv");
		scanf("%i",&n);
			for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			scanf("%i",&a[i][j]);
		printf("vv 2 matricu");
			for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			scanf("%i",&b[i][j]);
		printf("vv 3 matricu");
			for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			scanf("%i",&c[i][j]);
pro(A,B,X,n);
		printf("a*b=");
			for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			printf("%i",x[i][j]);
}
Заранее благодарен за помощь)
Slame вне форума Ответить с цитированием
Старый 16.12.2010, 13:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
int a[10][10],b[10][10],c[10][10],x[10][10];
int *as=&a[0][0],*bs=&b[0][0],*cs=&c[0][0],*xs=&x[0][0];
int **A=&as,**B=&bs,**C=&cs,**X=&xs;
а теперь обьясни зачем нужен был такой изврат.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2010, 13:16   #3
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию

Ну я спрашивал у препода она толком ничё не сказала.Скзала делай через указатель.
После 3 часового поиска в интернета по всяким форумам сайтам и книгам я нашёл только это.Как сделать по другому понятия не имею.Если можно задать по другому двумерный масив в функцию подскажите плз как?
Slame вне форума Ответить с цитированием
Старый 16.12.2010, 14:26   #4
Blad47
Пользователь
 
Регистрация: 10.11.2008
Сообщений: 93
По умолчанию

Код:
#include <stdio.h>

void pro(int *a,int *b,int n)
{
int i,j,k,s;
int c[n][n]={0};
for(i=0;i<n;i++)
{
	for(j=0;j<n;j++)
	{
		s=0;
		for(k=0;k<n;k++)
		{
			s=s+a[i][k]*b[k][j];
			//printf("x=%i",a[i][k]);printf("y=%i",b[k][j]);
		}
		c[i][j]=s;
	}
}

printf("Otvet\n");
for(i=0;i<n;i++)
{
	for(j=0;j<;j++)
	{
		printf(c[i][j]);
	}
	printf("\n");
}
}
main()
{
	int size=10;
	int a[size][size]={0};
	int b[size][size]={0};
	int c[size][size]={0};
//	int x[size][size]={0};
//int *as=&a[0][0],*bs=&b[0][0],*cs=&c[0][0],*xs=&x[0][0];
//int **A=&as,**B=&bs,**C=&cs,**X=&xs;
int i,j,n;
		printf("vv n a zatem 1 masiv");
		scanf("%i",&n);
			for(i=0;i<n;i++)
			{
				for(j=0;j<n;j++)
				{
					scanf("%i",&a[i][j]);
				}
			}
		printf("vv 2 matricu");
			for(i=0;i<n;i++)
			{
				for(j=0;j<n;j++)
				{
					scanf("%i",&b[i][j]);
				}
			}
		printf("vv 3 matricu");
			for(i=0;i<n;i++)
			{
				for(j=0;j<n;j++);
				{
					scanf("%i",&c[i][j]);
				}				
			}
			
pro(A,B,n);
}
Blad47 вне форума Ответить с цитированием
Старый 16.12.2010, 14:34   #5
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию

Blad47 Спасибо большое.
Но когда загнал в компилятор выбило много много ошибок.

Код:
int c[n][n]={0};
Поставил вместо n целые числа потом дальше
Код:
s=s+a[i][k]*b[k][j];
Invalid indirection
И и там ещё массу ошибок...я сам так пытался сделать...Но тоже не мог получить прямого доступа к элементам масиива из за Invalid inderection
Slame вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение матриц) Guzal Общие вопросы C/C++ 1 26.10.2010 21:56
Stl Умножение матриц Mushu Общие вопросы C/C++ 2 18.06.2010 13:11
Умножение матриц Alyonka_v Помощь студентам 2 18.08.2009 21:51