Попытка вычислить функцию sin, используя число, введенное пользователем с помощью потока. - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь написать программу C, которая включает потоки. Пользователь вводит число, и создается поток для вычисления значения sin для этого числа. Прямо сейчас, когда я компилирую и запускаю код, поток никогда не заканчивается. Я также включил шаги, которые я использую для компиляции этой программы, в комментарии в моем исходном коде.

#include <stdio.h>
#include <math.h>
#include <pthread.h>
/*
compile:
1.  gcc MyName.c -o MyName -lm -lpthread
2. ./MyName.c
*/

double result;
double x;  

void *calcSin(void *u);

int main()
{
    pthread_t tid;
    pthread_attr_t attr;

    pthread_attr_init(&attr); //Set thread attributes
    pthread_create(&tid, &attr, calcSin, NULL); //Create thread
    pthread_join(tid,NULL); //Wait until new thread completes

    printf("First thread completed here is sin: %lf\n", result);
    return 0;
}

void *calcSin(void *u)
{
    result = 0;
    printf("Enter first number: \n");
    scanf("%lf\n",&x);   

    result = sin(x);
    pthread_exit(0);
}


1 Ответ

1 голос
/ 23 апреля 2020

Просто удалите '\ n' из scanf, и оно должно работать. scanf делает это автоматически.

...