teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

2020/08/05 08:55

投稿

manatee0624
manatee0624

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,26 +1,4 @@
1
- =========================================================================
1
+ gamble.ne
2
- /*恐らくここからが原因*/
2
+ main(void){
3
3
 
4
- for(q=0;q<10;q++){
5
- for(i=0;i<10;i++){
6
- a = atoi(argv[1]);
7
- srand(a+i+q);
8
- r = 1 + rand()%6;
9
- k[i]=r;
10
- x=x*(1+(double)a/b);
4
+ int a,b,c,///
11
- }
12
-
13
- }
14
- e[q]=x;
15
-
16
-
17
- /*恐らくここまでが原因*/
18
-
19
- =======================================================================
20
-
21
-
22
- さいころを10回振って,1以外ならば賭け金が2倍になって戻ってきて,1ならば賭け金が0になるゲームのシミュレーションを1001回したあとに中央値を求めるプログラムを実装したいのですが,うまくいきません.
23
- 賭け率を1にすれば0.0000円になり,それ以外はとてつもなく巨大な数字になりました.(合ってたのは賭け率
24
- を0にしたときのみ)
25
-
26
- 初心者故に読みづらいコードかもしれませんが,ご教授ください.

3

誤字

2020/08/05 08:55

投稿

manatee0624
manatee0624

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,18 +1,17 @@
1
1
  =========================================================================
2
2
  /*恐らくここからが原因*/
3
3
 
4
- for(q=0;q<1001;q++){
4
+ for(q=0;q<10;q++){
5
-
6
5
  for(i=0;i<10;i++){
7
- s = atoi(argv[1]);
6
+ a = atoi(argv[1]);
8
- srand(s*i*q);
7
+ srand(a+i+q);
9
8
  r = 1 + rand()%6;
10
9
  k[i]=r;
11
10
  x=x*(1+(double)a/b);
12
11
  }
13
12
 
14
13
  }
15
- w[q]=x;
14
+ e[q]=x;
16
15
 
17
16
 
18
17
  /*恐らくここまでが原因*/

2

ごじ

2020/08/05 08:51

投稿

manatee0624
manatee0624

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,12 +8,6 @@
8
8
  srand(s*i*q);
9
9
  r = 1 + rand()%6;
10
10
  k[i]=r;
11
-
12
-
13
- if (k[i]==1) {
14
- x=x*(1-(double)a/b);
15
- }
16
- else{
17
11
  x=x*(1+(double)a/b);
18
12
  }
19
13
 

1

書式の改善

2020/08/05 08:49

投稿

manatee0624
manatee0624

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,28 +1,9 @@
1
- #include <stdio.h>
2
- #include <stdlib.h>
3
-
4
- int main(int argc,char *argv[]){
5
- int q; /*各種使う変数の宣言*/
6
- double w[2000];
7
- int i,s,k[1000],r,a,b;
8
- double x=10000;
9
- puts("分子と分母の値を順に入力してください.:"); /*賭ける所持金の割合の入力*/
10
- scanf("%d/%d",&a,&b);
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
1
  =========================================================================
21
2
  /*恐らくここからが原因*/
22
3
 
23
- for(q=0;q<1001;q++){ /*1001回繰り返す*/
4
+ for(q=0;q<1001;q++){
24
5
 
25
- for(i=0;i<10;i++){ /*サイコロを振り,サイコロの出た目を確認してxの値を計算する.これを10回繰り返す.*/
6
+ for(i=0;i<10;i++){
26
7
  s = atoi(argv[1]);
27
8
  srand(s*i*q);
28
9
  r = 1 + rand()%6;
@@ -38,34 +19,13 @@
38
19
 
39
20
  }
40
21
  w[q]=x;
41
- /*配列に最終的な所持金を格納していく.*/
22
+
42
- }
43
23
 
44
24
  /*恐らくここまでが原因*/
45
25
 
46
26
  =======================================================================
47
27
 
48
28
 
49
-
50
-
51
-
52
- int m; /*配列wをソートする*/
53
- double tsh;
54
- for(q=0;q<1001;++q){
55
- for(m=q+1;m<1001;++m){
56
- if(w[q]>w[m]){
57
- tsh = w[q];
58
- w[q] = w[m];
59
- w[m] = tsh;
60
-
61
- }
62
- }
63
- }
64
- printf("%lf\n",w[501]); /*ソートした配列の中央値を求めるために501番めの数を出力する*/
65
-
66
- }
67
-
68
-
69
29
  さいころを10回振って,1以外ならば賭け金が2倍になって戻ってきて,1ならば賭け金が0になるゲームのシミュレーションを1001回したあとに中央値を求めるプログラムを実装したいのですが,うまくいきません.
70
30
  賭け率を1にすれば0.0000円になり,それ以外はとてつもなく巨大な数字になりました.(合ってたのは賭け率
71
31
  を0にしたときのみ)