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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2010, 11:39   #1
softeg
 
Регистрация: 15.01.2010
Сообщений: 4
По умолчанию Матрицы

Найти нужно след матрицы на Си
задачу выполнил, но препод сказал включить всё кроме заказа памяти и считывания файла в функцию, как это сделать не знаю, зачет сдавать через 3 часа))помогите пожалуйста
Код:
#include<alloc.h>
#include<stdio.h>
#include<conio.h>
main()
{
FILE *f;
int **matrixA,**matrixB,**result;
int i,j,a,r,Elem,Step=0,m,n;
clrscr();
if((f=fopen("lol.dat","r"))==NULL){
printf("”©« Ґ ®вЄалв"); exit(1);}
fscanf(f,"%d%d",&m,&n);
matrixA=(int*)malloc(m*sizeof(int*));
matrixB=(int*)malloc(m*sizeof(int*));
result=(int*)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{
matrixA[i]=(int*)malloc(n*sizeof(int));
matrixB[i]=(int*)malloc(n*sizeof(int));
result[i]=(int*)malloc(m*sizeof(int));
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(f,"%d",&matrixA[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
fscanf(f,"%d",&matrixB[i][j]);

for(i=0;i<n;i++)
{
for(a=0;a<n;a++)
{
Elem = 0;
for(r=0;r<m;r++)
{
Elem=Elem+matrixA[i][r]*matrixB[r][a];
}
result[i][a] = Elem;
}
}
printf("matrixA:\n");
for(i=0;i<n;i++)
{
for(a=0;a<m;a++)
{
printf("%s%d", "\t", matrixA[i][a]);
}
printf("\n");
}

printf("matrixB:\n");
for(i=0;i<m;i++)
{
for(a=0;a<n;a++)
{
printf("%s%d", "\t", matrixB[i][a]);
}
printf("\n");
}

printf("result:\n");
for (i=0;i<n;i++)
{
for (a=0;a<n;a++)
{
printf("%s%d", "\t",result[i][a]);
}
printf("\n");
}

for(i=0;i<n;i++)
{
Step=Step+result[i][i];
}
printf("Sled matritcy raven: %d", Step);

getch();
}
lol.dat
Код HTML:
3 2
1 2 3
3 2 1
4 5
6 7
8 9
softeg вне форума Ответить с цитированием
Старый 15.01.2010, 12:28   #2
softeg
 
Регистрация: 15.01.2010
Сообщений: 4
По умолчанию

Очень прошу помощи, парнииии!
softeg вне форума Ответить с цитированием
Старый 15.01.2010, 13:16   #3
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Ну вот
Код:
#include<alloc.h>
#include<stdio.h>
#include<conio.h>

void Calc(int** A,int** B, int** Result,int n,int m)
{
for(int i=0;i<n;i++)
{
for(int a=0;a<n;a++)
{
int Elem = 0;
for(int r=0;r<m;r++)
{
Elem=Elem+A[i][r]*B[r][a];
}
Result[i][a] = Elem;
}
}
}

void PrintMatrix(int** matr, int n ,int m)
{
for(int i=0;i<n;i++)
{
for(int a=0;a<m;a++)
{
printf("%s%d", "\t", matr[i][a]);
}
printf("\n");
}
}

int CalcSled(int** matr, int n)
{
int Step = 0;
for(int i=0;i<n;i++)
{
Step=Step+matr[i][i];
}
return (Step)
}

main()
{
FILE *f;
int **matrixA,**matrixB,**result;
int i,j,Elem,Step=0,m,n;
clrscr();
if((f=fopen("lol.dat","r"))==NULL){
printf("”©« Ґ ®вЄалв"); exit(1);}
fscanf(f,"%d%d",&m,&n);
matrixA=(int**)malloc(m*sizeof(int*));
matrixB=(int**)malloc(m*sizeof(int*));
result=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{
matrixA[i]=(int*)malloc(n*sizeof(int));
matrixB[i]=(int*)malloc(n*sizeof(int));
result[i]=(int*)malloc(m*sizeof(int));
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(f,"%d",&matrixA[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
fscanf(f,"%d",&matrixB[i][j]);

Calc(matrixA,matrixB,result,n,m);

printf("matrixA:\n");
PrintMatrix(matrixA,n,m);


printf("matrixB:\n");
PrintMatrix(matrixB,m,n);

printf("result:\n");
PrintMatrix(result,n,n);

printf("Sled matritcy raven: %d", CalcSled(result,n));

getch();
}
Правда я код не перепроверял. (если где есть мелкие ошбки сам исправь) И твой код не правил, только организовал его в виде функций.

Немного подправил ошибки
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 15.01.2010 в 20:43.
val_nnm вне форума Ответить с цитированием
Старый 15.01.2010, 13:36   #4
softeg
 
Регистрация: 15.01.2010
Сообщений: 4
По умолчанию

Line 7: Expression syntax in function Calc
Line 7: Undefined symbol 'i' in function Calc

по всеу коду ошибки такие (
softeg вне форума Ответить с цитированием
Старый 15.01.2010, 13:44   #5
softeg
 
Регистрация: 15.01.2010
Сообщений: 4
По умолчанию

ступи, исправи, но теперь
error to few parameters in call to 'Calc' in function main
softeg вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
TurboPascal: графы, матрицы смежности и матрицы инцидентности. ulala Помощь студентам 1 03.03.2011 19:28
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19