C ++计算不包括3的倍数的整数之和

时间:2014-10-10 00:11:59

标签: c++ loops if-statement for-loop modulus

我对一个非常令人沮丧的问题感到难过。尝试编写输入整数的提示,并输出1和输入数字之间的整数之和,同时在总和中排除3的倍数。非常感谢任何帮助!

这是我目前的代码:

int v;
int q;
int sum = 0;

cout << "Enter an integer: ";

cin >> v;

for (q = 1; q < v; q++) {
  if (v % 3 == 0)
    continue;
  else
    sum = sum + v;
}

cout << "The sum of integers: "<< sum << endl << endl;

2 个答案:

答案 0 :(得分:2)

我认为你的循环应该是

for ( q = 1; q < v; q++ )
    if ( q % 3 != 0 )
        sum += q;

答案 1 :(得分:2)

问题是您要将v添加到sum,而不是for循环中增加的数字q

for (q = 1; q < v; q++) {
sum += (q%3 == 0 ? 0 : q);
}

此外,您可以在一行中定义所有整数,如下所示:

int v, q, sum=0;

此外,无论是否有意,q的值永远不会添加到总和中。要修复,请将for循环中的表达式更改为:

q <= v;