- 締切済み
解説お願いします。
0から9までの数字を入力しあたりかはずれかを表示するプログラム。 #include<stdio.h> #include<time.h> #include<stdlib.h> int main(void){ int r,a; printf("0から9までの数字を入力してください。\n"); scanf("%d",&a); srandom(time(NULL)); r = random()%10; printf("%d \n",r); if(a==r){ printf("アタリ\n");} else{ printf("ハズレ\n");} return 0; } 例えば%10は何のためにあるのかとか・・
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- KEIS050162
- ベストアンサー率47% (890/1879)
srandom(), random() は関数の仕様を良く読んでください。 % はモデュロ演算子と呼ばれ、四則演算と共に良く使われる演算子です。日本語では剰余演算子と呼びます。 http://www9.plala.or.jp/sgwr-t/c/sec03.html 試しに、r = random() % 10; の ”%10” を無くして、テストプログラムを動かしてみてください。 1/10の確立で当たっていたものが、ほとんど当たらなくなります。 また、r = random() % 4 とかにすると、発生する乱数は、0~3までになります。
- XenoneX
- ベストアンサー率85% (12/14)
解説の欲しい部分を明確にしてくれると助かるのですが…。 とりあえず%10について aには0~9の数字が入っており、それとrを比較してアタリハズレを分けていくプログラムなので、rにはランダムで0~9の数字をいれなければいけません。 しかし、0~9の中からランダムで数字を選ぶ関数などはないので、random()で得られた数字を10で割り、その余りを入れています。どんな数字も10で割れば、余りは0~9になりますよね? これで0~9の中からランダムに数字を選ぶことができるようになっています。
- Tacosan
- ベストアンサー率23% (3656/15482)
% の意味は調べないの?