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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2020, 19:11   #1
fahab51
Новичок
Джуниор
 
Регистрация: 07.12.2020
Сообщений: 3
Сообщение Си под Линукс

Напишите двухпоточную программу. Главный поток случайно генерирует числа массива, например int a[2][10]
Первый поток считает сумму элементов первой строки массива(и по мере возможности выписывает результат)
Второй поток считает сумму элементов второй строки массива(и по мере возможности выписывает результат)
Главный поток считает целую сумму(int) из частичных сумм определенных потоками выше(и по мере возможности выписывает результат)

Программа выписывает сумму только для первого ряда, во втором ряду всегда 0, и не выписывает итоговую сумму, как можно изменить (переделать ) ? Программа соответствует описанию задания (подключения, отключения потоков) ?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <time.h>
#define REENTRANT
int sum1, sum2;
int tab[2][10];

void *tab1()
{
	int i;
	for (i = 0; i < 10; i++) sum1 += tab[0][i];
	printf("Sum of the elements of the first row %d\n", sum1);
	pthread_exit(0);
}

void *tab2()
{
	int i;
	for (i = 0; i < 10; i++) sum2 += tab[1][i];
	printf("Sum of the elements of the second row %d\n", sum2);
	pthread_exit(0);
}

int main()
{
	int i, j;
	pthread_t id1, id2;
	srand(0);
	pthread_create(&id1, NULL, tab1, NULL);
	pthread_create(&id2, NULL, tab2, NULL);
	
	for(i = 0; i < 2; j++)
		for(j = 0; j < 10; j++)
			tab[i][j] = rand() % 30;
	
	pthread_join ( id1, NULL );
	pthread_join ( id2, NULL );
	printf("Sum of all elements from array %d\n", sum1 + sum2 );
	pthread_detach( id1 );
	pthread_detach( id2 );
	
	return 0;
}
fahab51 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ портативный под винду и линукс mc13 Общие вопросы C/C++ 23 04.01.2015 12:52
исполнить тетрады на си под линукс tarasman11 Помощь студентам 0 02.05.2013 16:28
заставка под линукс Eyxeniy Qt и кроссплатформенное программирование С/С++ 0 18.05.2011 20:10
асм под линукс pufystyj Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 14.02.2011 10:22