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

プログラミング実行後の表示される値を答えよ

#include<stdio.h>

void main(void){
int i, sum=0;
for(i=2;i<1000;i=i*i){
sum+=i;
}
printf("%d",sum);
}
この問題の解き方を教えて欲しいです
数列を使うのかなーくらいしか理解できてません

A 回答 (7件)

>プログラミング実行後の表示される値を答えよ



どこまでを「プログラミング」と呼ぶかによって答えは違うと思いますが、コーディング直後(ソースコードを書き終わった後)ということであれば、コマンドプロンプト等です。

恐らく、意図はこのソースコードをコンパイルした実行形式のコマンドを実行したときに標準出力の表示内容のことを問うている(しかも実際に動作させずに結果を導き出せ)と思うのですが、という意味であれば、実際にループ中のiとsumの変化を1イテレーションごとに書き下してみるとわかります。
1回目はi=2, sum=2、2回目はi=4, sum=6、3回目は・・・という感じにやっていきます。それ以外に方法はありません。
    • good
    • 0

2+4+16+256

    • good
    • 0

どこまで理解しているのかがよくわかりませんが、


・int型の変数「sum」は「printf」するときに「%d」でフォーマット指定されるとどういうふうに標準出力されるか
・「sum+=i;」すると変数「sum」の値はどう変化するか
・「for(i=2;i<1000;i=i*i)」は変数「i」がどこからどういった条件まで動作するか
(i++ではなくi*iであることに注意)
を考えれば簡単にわかると思います。
    • good
    • 2

for(i=2;i<1000;i=i*i)



この意味を読み取りましょう。
それで解決できるはずです。

forステートメントの使い方を確認すれば解けるということです。
他は確認するまでもないでしょ?

・・・

(; ・`д・´) まさかそこまでの基礎知識もないという状況ってことはないよね。
で、
 御託はいいから答えだけ教えろ。調べるのが面倒だから質問してるんだ
……ってことじゃないよね。
    • good
    • 0

プログラムが portable ではないのでどうなるかは答えられない.

    • good
    • 0

実際にコンパイル&実行してみれば、わかるかと思いますが。

    • good
    • 0

これは動かして答えを導き出すものですよ。


実際にコンパイルして動かしてもいいし、
手で一行ずつ変数の値を確かめながら計算してもいいし。
    • good
    • 0

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