質問編集履歴
2
実現したいことを書き忘れていた
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
processingで最大値を求めるプログラムを作っています。具体的な内容は、まず配列の置き場としてa[]とします。次にランダムに100のなかから10個、数を生成します。配列の最初の値をiとし、最後の値をjとします。つまり、a[i]からa[j]の最大値を求めます。もしiとjが同じ値なら、a[i]を返します。そうでないなら、つぎのようなここからが言葉では説明できるのですが、プログラムが完成できません。まず、kという値を定義します。k=i+(j-i)/2です。つまり、配列のちょうど真ん中です。
|
3
|
+
processingで最大値を求めるプログラムを作っています。具体的な内容は、まず配列の置き場としてa[]とします。次にランダムに100のなかから10個、数を生成します。配列の最初の値をiとし、最後の値をjとします。つまり、a[i]からa[j]の最大値を求めます。もしiとjが同じ値なら、a[i]を返します。そうでないなら、つぎのようなここからが言葉では説明できるのですが、プログラムが完成できません。まず、kという値を定義します。k=i+(j-i)/2です。つまり、配列のちょうど真ん中です。そして、⭐kより前(a[i]~a[k])の最大値の値とkより後(a[k]~a[j])の最大値の値をそれぞれ求め⭐、そのそれぞれの値を比較し大きいほうの値を返します(max())。⭐で囲まれた部分が分かりません。プログラムでいうと最後のreturn(max());という部分です。解答お待ちしております。
|
4
4
|
|
5
5
|
### 発生している問題・エラーメッセージ
|
6
6
|
|
1
ソースコードを書き忘れていた
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,34 @@
|
|
11
11
|
### 該当のソースコード
|
12
12
|
|
13
13
|
```processing
|
14
|
+
int D[];
|
15
|
+
int N=10;
|
16
|
+
|
17
|
+
void setup(){
|
18
|
+
D=new int [N];
|
19
|
+
for(int i=0;i<N;i++){ D[i]=(int)random(100); }
|
20
|
+
noLoop();
|
21
|
+
}
|
22
|
+
|
23
|
+
void draw()
|
24
|
+
{
|
25
|
+
println("----- before -----"); println(D);
|
26
|
+
println("Mqx value is "+FindMax(D,0,N-1));
|
27
|
+
}
|
28
|
+
|
29
|
+
int FindMax(int a[], int i, int j){
|
14
|
-
|
30
|
+
int k;
|
31
|
+
if(i==j){
|
32
|
+
return(a[i]);
|
33
|
+
}else{
|
34
|
+
k=i+(j-i)/2;
|
35
|
+
return(max());
|
36
|
+
}
|
37
|
+
|
38
|
+
|
39
|
+
}
|
40
|
+
|
41
|
+
|
15
42
|
```
|
16
43
|
|
17
44
|
### 試したこと
|