1

合計を印刷できません。警告などは表示されませんでした。

ここでこの質問をしようとすると:http://projecteuler.net/problem=1プログラムが実行され、その後永久に停止します。

// Adding multiples of this and following equations
#include "std_lib_cmpt125.h"

void SumMultiple(int Max,int Base)
{
    int i=0;
    int sum=0;
    for(i;i<Max;i+Base)
        {
            sum=i+sum;
        };
    cout<<"The sum"<<sum;
}
int main()
{
    int base=0;
    int max=0;
    int sum=0;
    cout<<"Please enter the sum's multiple: (ex. 3: 3,6,9,12...)\n";
    cin>>base;
    cout<<"Please enter the sum's maximum: (ex. 10000)\n";
    cin>>max;
    SumMultiple(max,base);
    return 0;
}
}
4

5 に答える 5

6

あなたはiをインクリメントするのを逃しました、

for(i;i<Max;i=i+Base)
{
..
}

または

for(i;i<Max;i+=Base)
 {
  ..
 }
于 2012-05-28T03:14:03.437 に答える
1

変化する:

int i=0;
int sum=0;
for(i;i<Max;i+Base)
{
   sum=i+sum;
};

に:

int sum = 0;
for (int i = 0; i < Max; i += Base)
{
  sum += i;
}

for元のループの最初のステートメントは何も行わず、の値をiインクリメントする必要があり(これは演算子を使用して最も簡単に実行できます+=)、閉じ中括弧の後のセミコロンは不要であることに注意してください。

C ++では、ループ自体でループ変数を宣言し、そのスコープを制限し、カウンターとしての目的を強調するのが通例です。

于 2012-05-28T03:16:47.923 に答える
1

最後に余分な中括弧}があり、iをインクリメントしていません

于 2012-05-28T03:18:26.700 に答える
0

変更

for(i;i<Max;i+Base)
        {
            sum=i+sum;
        };
    cout<<"The sum"<<sum;

の中へ

for(i;i<Max;i=i+Base)
        {
            sum=i+sum;
        };
    cout<<"The sum"<<sum;

また

for(i;i<Max;i+=Base)
        {
            sum=i+sum;
        };
    cout<<"The sum"<<sum;

上記のコードはカウンターiをインクリメントし、必要な結果を表示します

于 2012-05-28T03:23:32.750 に答える
0

また、その機能で答えを得るつもりはありません。問題1は、[1..999]から3または5のすべての倍数の合計を探しています。

これを試して

for ( int i = 1; i < Max ; i++ ) 
    sum += ((i % 3 && i % 5) ? 0 : i ; 
return sum
于 2012-05-28T03:42:30.890 に答える