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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2014, 22:40   #1
Милкаааа
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 2
По умолчанию среда CodeBlocks помогите пожалуйста исправить программу!

Программу переделывала несколько раз, выдает большие числа результат не тот!
Нужно реализовать последовательный алгоритм, умножения матриц. Надеюсь на вашу помощь!
Код:
#include <pthread.h>
#include <iostream>
#include <stdlib.h>
#include <Windows.h>
using namespace std;
struct arg_struct
{
    int A[1][5];
    int B[5][5];
    int C[1][5];
};
void* worker(void *arguments)
{
	struct arg_struct *args = (arg_struct*) arguments;
for (int i = 0; i < 1; i++)
{
	int m = 0;
	for (int j = 0; j < 5; j++)
	{
for (int k = 0; k < 5; k++)
{

		 m = m + args->A[i][j] * args->B[j][k];

args->C[i][k] = m;
	}
}
}
}
int main()
{
    int A[1][5];
int B[5][5];
int C[1][5];

//Иници
A[0][0]= 5;A[0][1]= 4;A[0][2]= 3;A[0][3]= 2;A[0][4]= 1;

B[0][0]= 1; B[0][1]= 5; B[0][2]=2; B[0][3]=4; B[0][4]=3;
B[1][0]= 1; B[1][1]= 5; B[1][2]=2; B[1][3]=4; B[1][4]=3;
B[2][0]= 1; B[2][1]= 5; B[2][2]=2; B[2][3]=4; B[2][4]=3;
B[3][0]= 1; B[3][1]= 5; B[3][2]=2; B[3][3]=4; B[3][4]=3;
B[4][0]= 1; B[4][1]= 5; B[4][2]=2; B[4][3]=4; B[4][4]=3;


//-----------------------------------------

struct arg_struct ags1;

for (int i = 0; i < 1; i++)
{
	for (int j = 0; j < 5; j++)

	{

		ags1.A[i][j] = A[i][j];
    }
}
	for (int j = 0; j < 5; j++)
	{
for (int k = 0; k < 5; k++)
{

		ags1.B[k][j] = B[k][j];
    }
}
pthread_t t1;


pthread_create(&t1, NULL, worker, &ags1);

 pthread_join(t1, NULL);




for (int i = 0; i < 1; i++)
{

for (int k = 0; k < 5; k++)

    {
cout << C[i][k] << " ";
}
cout << endl;
}
}

Последний раз редактировалось Stilet; 10.12.2014 в 10:15.
Милкаааа вне форума Ответить с цитированием
Старый 09.12.2014, 22:49   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ну, для начала - после выполнения функции в потоке результат у тебя будет лежать в ags1.C, а ты выводишь значения из просто C.
Son Of Pain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста помогите исправить программу!!! J@GU@R Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 12.12.2009 22:59
Помогите исправить, пожалуйста abcdefg Паскаль, Turbo Pascal, PascalABC.NET 5 29.10.2009 21:51
Пожалуйста!!!!Помогите исправить программу на Visual Basic Kate777 Помощь студентам 3 18.01.2009 18:51
Помогите,пожалуйста,исправить задачу... Загадка Паскаль, Turbo Pascal, PascalABC.NET 1 21.12.2006 00:42