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

最后你有一个额外的 Brace } 并且你没有增加 i

于 2012-05-28T03:18:26.700 回答
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 回答
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 回答