2

次のシリーズの合計を計算したい:

5 + 8 + 11 + .... + 50

上記のシリーズとシリーズの合計を出力するために for ループを使用したいと考えています。私は次のコードを書きました:

#include <iostream>
using namespace std;

int main()
{
    int i, sum = 0, n = 50;
    cout << "\n\n THE SERIES IS UNDER : \n\n\n";
    i = 2;
    while(i <= n)
    {
        sum = sum + i;
        if (i == 2)
            cout << i;
        else
            cout << " + "<< i;
        i = i + 3;
    }
    cout << "\n\n\n THE SUMMATION IS "<< sum;
    return 0;
}
4

2 に答える 2

4
cout<<"\n\n\n THE SUMMATION IS ",sum;

->

cout << "\n\n\n THE SUMMATION IS " << sum;

cout<<" + ",i;

->

cout << " + " << i;

コンマ ( ,) 演算子は、ここではストリーム ( ) 演算子のようには機能しません<<

于 2013-03-23T15:29:48.620 に答える
4
#include<iostream>
using namespace std;

int main()
{
    cout << "\n\n THE SERIES IS UNDER : \n\n\n";

    int sum = 0;
    for (int i = 5; i < 50; i += 3) {
        cout << i << '+';
        sum += i;
    }
    cout << 50 << endl;
    sum += 50;

    cout << "\n\n\n THE SUMMATION IS " << sum << endl;
    return 0;
}

このバージョンの変更点:

  1. ;iostreamの代わりに含める これは、コンパイラ間でより移植性がありますiostream.h
  2. ここでループを使用する と、forより簡潔で明確になります。
  3. このテストif (i == 2) cout << i;は 1 回の反復でしか真でないため、時間の無駄です。代わりに、最初のアイテムまたは最後のアイテムをforループ外の特別なケースとして処理できます。
  4. 前者の方が明確で効率的であるため、 のsum += i代わりに使用します。sum = sum + iほとんどのプログラマーは、デフォルトで前者を選択します。
  5. 通常cout << endl、C++ で使用します。そうしない理由がない限り、'\n'との間には違いがあります。endl投稿を参照してください: C++: "std::endl" vs "\n"
于 2013-03-23T15:32:36.120 に答える