質問編集履歴

4

2020/08/05 08:55

投稿

manatee0624
manatee0624

スコア1

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

3

誤字

2020/08/05 08:55

投稿

manatee0624
manatee0624

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,15 +4,13 @@
4
4
 
5
5
 
6
6
 
7
- for(q=0;q<1001;q++){
7
+ for(q=0;q<10;q++){
8
-
9
-
10
8
 
11
9
  for(i=0;i<10;i++){
12
10
 
13
- s = atoi(argv[1]);
11
+ a = atoi(argv[1]);
14
12
 
15
- srand(s*i*q);
13
+ srand(a+i+q);
16
14
 
17
15
  r = 1 + rand()%6;
18
16
 
@@ -26,7 +24,7 @@
26
24
 
27
25
  }
28
26
 
29
- w[q]=x;
27
+ e[q]=x;
30
28
 
31
29
 
32
30
 

2

ごじ

2020/08/05 08:51

投稿

manatee0624
manatee0624

スコア1

test CHANGED
File without changes
test CHANGED
@@ -17,18 +17,6 @@
17
17
  r = 1 + rand()%6;
18
18
 
19
19
  k[i]=r;
20
-
21
-
22
-
23
-
24
-
25
- if (k[i]==1) {
26
-
27
- x=x*(1-(double)a/b);
28
-
29
- }
30
-
31
- else{
32
20
 
33
21
  x=x*(1+(double)a/b);
34
22
 

1

書式の改善

2020/08/05 08:49

投稿

manatee0624
manatee0624

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,52 +1,14 @@
1
- #include <stdio.h>
2
-
3
- #include <stdlib.h>
4
-
5
-
6
-
7
- int main(int argc,char *argv[]){
8
-
9
- int q; /*各種使う変数の宣言*/
10
-
11
- double w[2000];
12
-
13
- int i,s,k[1000],r,a,b;
14
-
15
- double x=10000;
16
-
17
- puts("分子と分母の値を順に入力してください.:"); /*賭ける所持金の割合の入力*/
18
-
19
- scanf("%d/%d",&a,&b);
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
1
  =========================================================================
40
2
 
41
3
  /*恐らくここからが原因*/
42
4
 
43
5
 
44
6
 
45
- for(q=0;q<1001;q++){ /*1001回繰り返す*/
7
+ for(q=0;q<1001;q++){
46
8
 
47
9
 
48
10
 
49
- for(i=0;i<10;i++){ /*サイコロを振り,サイコロの出た目を確認してxの値を計算する.これを10回繰り返す.*/
11
+ for(i=0;i<10;i++){
50
12
 
51
13
  s = atoi(argv[1]);
52
14
 
@@ -78,9 +40,7 @@
78
40
 
79
41
  w[q]=x;
80
42
 
81
- /*配列に最終的な所持金を格納していく.*/
43
+
82
-
83
- }
84
44
 
85
45
 
86
46
 
@@ -89,46 +49,6 @@
89
49
 
90
50
 
91
51
  =======================================================================
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
- int m; /*配列wをソートする*/
104
-
105
- double tsh;
106
-
107
- for(q=0;q<1001;++q){
108
-
109
- for(m=q+1;m<1001;++m){
110
-
111
- if(w[q]>w[m]){
112
-
113
- tsh = w[q];
114
-
115
- w[q] = w[m];
116
-
117
- w[m] = tsh;
118
-
119
-
120
-
121
- }
122
-
123
- }
124
-
125
- }
126
-
127
- printf("%lf\n",w[501]); /*ソートした配列の中央値を求めるために501番めの数を出力する*/
128
-
129
-
130
-
131
- }
132
52
 
133
53
 
134
54