初心者の作ったプログラムの問題点を指摘ください。
下のように、0から9までの乱数の発生回数の標準偏差を求めるプログラムを組んでみたのですが、最後のシグマの演算が無視されてしまい、0.000000と出力されてしまいます。どこがいけないのでしょうか?
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<math.h>
int main (void){
int N,i,j,r,a[10]={0,0,0,0,0,0,0,0,0,0};
double S=0;
printf("How many trials?;");
scanf("%d",&N);
srand((unsigned)time(NULL)); /*初期化*/
for(i=0;i<N;i=i+1)
{
r=(int)(rand()/(RAND_MAX +1.0)*10); /*乱数N個取得*/
a[r]=a[r]+1;
}
for(r=0;r<10;r=r+1){
printf("a[%d]=%d.\n",r,a[r]);
S=1/10*(S+sqrt((a[r]-N/10)*(a[r]-N/10))); /*演算(無視されてしまう・・・)*/
}
printf("Sigma=%f",&S);
return 0;
}
お礼
御礼が遅くなりました。ありがとうございました。