• 締切済み

解説お願いします。

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は何のためにあるのかとか・・

みんなの回答

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.3

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)
回答No.2

解説の欲しい部分を明確にしてくれると助かるのですが…。 とりあえず%10について aには0~9の数字が入っており、それとrを比較してアタリハズレを分けていくプログラムなので、rにはランダムで0~9の数字をいれなければいけません。 しかし、0~9の中からランダムで数字を選ぶ関数などはないので、random()で得られた数字を10で割り、その余りを入れています。どんな数字も10で割れば、余りは0~9になりますよね? これで0~9の中からランダムに数字を選ぶことができるようになっています。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

% の意味は調べないの?

関連するQ&A