Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: динамические массивы
 
 автор: Алиска   (19.10.2009 в 15:48)   письмо автору
 
 

Помогите пожалуйста доделать программу. Вот задание:
Написать функцию вычисления произведения прямоугольной матрицы A размера k x m на прямоугольную матрицу B размера m x n. В главной программе обратиться к этой функции.
Функция написана,с основной программой проблема. Концовка не получается
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<alloc.h>
float **matr(float **a, int k, int m, float **b, int n)
{if(a==NULL || b==NULL)
return NULL;
//создаем результирующую матрицу С k x n
float **c=(float**)malloc(k*sizeof(float*));//выделяем память под массив указателей (строк) матрицы C
if(c==NULL)
{printf("Не создан динамический массив!");
return NULL;}
for (int i=0;i<k;i++)
{c[i]=(float*)malloc(n*sizeof(float));//выделяем память под i-строку
if(c[i]==NULL)
{printf("Не создан динамический массив!");
return NULL;}
for(int j=0; j<n; j++) {c[i][j]=0;
}
}
//умножаем матрицы
for(i=0;i<k;i++){
for(int j=0; j<n;j++){
for(int q=0;q<m; q++){
c[i][j]+=a[i][q]*b[q][j];
}
}
}
return c;
}
void main()
{int k,m,n,i,j,q;
float **a; float **b; float **c;
clrscr();
randomize();
printf("Введите количество строк и столбцов матрицы А:"); scanf("%d %d",&k,&m);
a=(float**)malloc(k*sizeof(float*));
if(a==NULL)
{printf("Не создан динамический массив!");
return;}
for (i=0; i<k; i++)
{a[i]=(float*)malloc(m*sizeof(float));//выделяем память под i-ю строку
if(a[i]==NULL)
{printf("Не создан динамический массив!");
return;}
for(int q=0; q<m; q++) {a[i][q]=random(10);}}
printf("\n Введите количество столбцов матрицы B:"); scanf("%d",&n);
b=(float**)malloc(m*sizeof(float*));
if(b==NULL)
{printf("Не создан динамический массив!");
return;}
for (q=0; q<m; q++)
{b[q]=(float*)malloc(n*sizeof(float));
if(b[q]==NULL)
{printf("Не создан динамический массив!!");
return;}
for(int j=0; j<n; j++) {b[q][j]=random(10);}}

  Ответить  
 
 автор: cheops   (22.10.2009 в 16:17)   письмо автору
 
   для: Алиска   (19.10.2009 в 15:48)
 

А что конкретно не получается?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования