2017-11-13 8 views
0

私は助けが必要です。私がビルドして実行しようとすると、 '='トークン 'の前に "error:expected";'、 '、') '行が表示されています(getRandomメソッドのところで'')。私は上でそれを数回行ってきたし、何度も何度と私はこの問題は、これが C -error: ';'の前に ';'、 '、'または ')' = 'トークン

double getRandom (double min, double max) { 
    return min + (rand() * (max - min)/RAND_MAX); 
} 

あなたをC.

ない

#include <pthread.h> 
#include <stdio.h> 
#include <stdlib.h> 

double getRandom (double min = -1, double max = 1) { 
    return min + (rand() * (max - min)/RAND_MAX); 
} 

int totalPoints = 0; 
int pointsInCircle = 0; 

void *countPoints (void *X) { 
    for (int i = 0; i < totalPoints; i++) { 
     double X = getRandom(); 
     double Y = getRandom(); 
     if (X*X + Y*Y <= 1)pointsInCircle++; 
    } 
    return NULL; 
} 


int main() 
{ 
    srand(time(NULL)); 
    pthread_t thread; 
    printf ("Enter total points for experiment : "); 
    scanf ("%d" , totalPoints); 
    pthread_create(&thread, NULL, &countPoints, NULL); 
    pthread_join(thread, NULL); 

    double PI = (4.0 * pointsInCircle)/totalPoints; 
    printf ("Approximate value for PI for total points %d is: %d " , totalPoints, PI); 



    return 0; 
} 
+1

* *あなたはそのエラーを受け取りますか?どの行? –

+1

エラーにはエラーが発生した行番号も含まれます –

+6

Cはデフォルト値を関数パラメータとして使用しません –

答えて

4
double getRandom (double min = -1, double max = 1) { 
    return min + (rand() * (max - min)/RAND_MAX); 
} 

何ができるかを見つけ出すように見えることはできませんあなたは

でこれらの呼び出しを置き換える必要があり

double X = getRandom(); 
    double Y = getRandom(); 

あなたのコードに無い実引数でそれを呼び出します

double X = getRandom(-1, 1); 
    double Y = getRandom(-1, 1); 
+0

私は変更を加えましたが、実行しようとすると "エラー:関数get_Random 'の14行目の引数が少なすぎます。 – Kamal

+2

@Kamalはい、Cではデフォルトの実際の引数はありません。関数の呼び出しごとに実際の引数を渡す必要があります。 – alinsoar

+0

@Kamal -1と1で関数を呼び出す場合は、 'getRandom(-1、1);'を実行します。 – yano

関連する問題