今、(1,1)の座標内に指定個数の点を打ち込むプログラムを作成しています。
試行ごとに異なる結果を得るために、乱数の種を用いようと考えているのですが、
使用方法がいまいちピンときません。
乱数の種をtime関数を用いて取得し、srand(time_t)のような形main文で指定して
それを別関数に送って送った関数内で使いたいのですがうまく行かないです。
プログラム
c
1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4#define N 1000 5 6typedef struct{ 7 double x; 8 double y; 9}Location; 10 11void random_points(int n,Location loc[],time_t tp){ 12 int i=0; 13 for(i=0;i<n;i++){ 14 loc[i].x = (double)srand48(tp); 15 loc[i].y = (double)srand48(tp); 16 printf("loc[%d].x = %f\n", i ,loc[i].x); 17 printf("loc[%d].y = %f\n", i ,loc[i].y); 18 } 19} 20 21int random_shuffle(int n){ 22 int i=0; 23 int j; 24 for(i=0;i<n;i++){ 25 j = rand() % 101; 26 printf("i = %d",j); 27 } 28} 29 30int main(void){ 31 double d[N][N]; 32 int n; 33 time_t tp; 34 time(&tp); 35 srand(tp); 36 Location loc[N]; 37 scanf("%d", &n); 38 random_points(n,loc,tp); 39 random_shuffle(n); 40}
エラー
rand_practice.c: 関数 ‘random_points’ 内:
rand_practice.c:14:9: エラー: void 式の無効な使用法です
loc[i].x = (double)srand48(tp);
^
rand_practice.c:15:9: エラー: void 式の無効な使用法です
loc[i].y = (double)srand48(tp);
^
回答4件
あなたの回答
tips
プレビュー