アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング実行後に表示される値を答えよ
#include <stdio.h>
void main(void){
int i, x[100], sum=0;
for(i=0; i<100; i++){
x[i] = i*i;
}
for(i=10; i<13; i++){
sum += x[i];
}
printf("%d", sum);
}
プログラミングのペーパーテストの過去問です
答えは365です
どのような計算をすればいいのか教えてほしいです

A 回答 (4件)

3行目:sum=0(初期化)



4〜6行目:i = 0 〜99まで繰り返す。
※ 4行目の「i < 100 (継続条件)」から
“i=100”は含まれないことに注意。
i=0 : x[0] ← 0×0
i=1 : x[1] ← 1×1
i=2 : x[2] ← 2×2

i=99 : x[99] ← 99×99
( → x には、添え字をnとして x[n]=n^2 の値が入る。)

7〜9行目:i = 10 〜12まで繰り返す。
※ 7行目の「i < 13 (継続条件)」から
“i=13”は含まれないことと、
3行目の時点で sum = 0 であることに注意。)
i=10 : sum に x[10] (← 10×10=100)を加える。
(→ sum = 0 + 100 = 100)
i=11 : sum に x[11] (← 11×11=121)を加える。
(→ sum = 100 + 121 = 221)
i=12 : sum に x[12] (← 12×12=144)を加える。
(→ sum = 221 + 144 = 365)

10行目:sumの値(=365)を表示。
    • good
    • 0

んーと。


 x[i]
には
 1²
 2²
 3³
 …
 100²
が入ります。
で、
 10番目の値は100
 11番目の値は121
 12番目の値は144
これは分かるかい。
なぜ10番目、11番目、12番目が出てくるのか分かるかい。
それを読み取れなきゃ話にならないんだ。

読み取れないということは、forステートメントを理解していないということになります。
forステートメントについて調べて理解するようにしましょう。

あとはこれを足し算しています。
sumがそれになります。

・・・
まさか、変数の形式宣言すら理解できていないということはありませんよね。
    • good
    • 0

こんにちは



>どのような計算をすればいいのか教えてほしいです
ご提示の計算では?

・・と言っていたのでは、身も蓋もないので、
 10×10 + 11×11 + 12×12 = 365
ということなのかな?
    • good
    • 0

まず、100個の配列データxの先頭から最後までのそれぞれにはどういう値が入るかを読み取ります。


以下の処理ですね。

for(i=0; i<100; i++){
x[i] = i*i;
}

次にこの配列xの10番目から12番目までの3個にはそれぞれどいう値が入っていてその合計は幾つかを考えます。
以下の処理ですね。

for(i=10; i<13; i++){
sum += x[i];
}

最初の配列に値を入れる処理では i * i の結果が入れられて行きますね。
ではx[10]からx[12]までにはそれぞれどういう値が入っているかです。

ちなみに蛇足ですが「プログラミング実行後」ではなく「プログラム実行後」ですね。(^^;
参考まで。
    • good
    • 1

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