没有语法错误但没有打印结果

时间:2012-05-28 03:12:19

标签: c++

我无法将这笔款项打印出来 我没有收到任何警告等。

在这里尝试做这个问题: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;
}
}

5 个答案:

答案 0 :(得分:6)

你错过了增加 i

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

或者

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

答案 1 :(得分: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 ++中习惯于在循环中声明一个循环变量,以限制其范围并强调其作为计数器的用途。

答案 2 :(得分:1)

你最后有一个额外的大括号},你没有增加我

答案 3 :(得分: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并显示必要的结果

答案 4 :(得分:0)

此外,您不会得到该功能的答案。问题1是从[1..999]

中寻找3或5的所有倍数的总和

试试这个

for ( int i = 1; i < Max ; i++ ) 
    sum += ((i % 3 && i % 5) ? 0 : i ; 
return sum