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

1000個の実数が実数型配列float X[999]に格納されているとする。これらの総和を求めたい


float sum;
sum =0.0;
for(i=0,i<1000,i++) sum=sum+X[i];

この部分プログラムの問題点を指摘してどのように改良すればよいか文章で簡潔にこたえよ


という問題を教えてください

A 回答 (2件)

実数型配列入力の有効桁数、総和の有効桁数、倍精度実数が使用可能か等で答は異なってきます。


総和の精度が4-5桁でよい場合には上のままで良いでしょう。

それ以上の精度が必要な場合は、最近の計算機では単精度実数、倍精度実数の演算速度は殆ど同じですので、sumの宣言を変更するのが一番簡単です。

単精度実数しか使えない場合にはforループを2回繰返し、先ず最初のsumから概略の平均値を求め、次に残差の和を求めてsumを補正する形を取ることが出来ます。
(例えばi=1...100000等となった場合を考えてください。最後の方ではsumには入力値の上1-2桁しか反映されなくなってしまいます)
    • good
    • 0

言語はなに?

    • good
    • 0

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