一回も披露したことのない豆知識

int calc(int *a.int s,int t){
if(s==t)return a[s];
else {
h=(s+t)/2;
return calc(a,s,h)+calc(a,h+1,t);
}
}

配列a[8]={11,5,7,3,2,17,1,3}としたときcalc(a,0,7)を実行するとどんな結果が得られるか?

A 回答 (2件)

コンパイルエラーになる。



1行目のピリオドをカンマに
4行目で使われている h の宣言(int h)を加えたとして

(a, 0, 7) → (a, 0, 3) + (a, 4, 7)
→ (a, 0, 1) + (a, 2, 3) + (a, 4, 5) + (a, 6, 7)
→ (a, 0, 0) + (a, 1, 1) + (a, 2, 2) + (a, 3, 3)
+ (a, 4, 4) +(a, 5, 5) + (a, 6, 6) + (a, 7, 7) = 49
    • good
    • 0

たぶん, エラーが出る


https://oshiete.goo.ne.jp/qa/12367481.html
ので実行できないと思います.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!