2014-10-10 50 views
-2

我被困在一个非常令人沮丧的问题上。尝试编码一个提示输入一个整数,并输出1和输入数字之间的整数之和,而在总和中排除3的倍数。任何帮助是极大的赞赏!C++计算不包括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; 
+0

请描述您遇到的问题。 – 2014-10-10 00:13:41

+0

具体。你的程序做了什么,你不喜欢?你期望它做什么呢? – indiv 2014-10-10 00:14:52

+3

看看if(v%3 == 0) - 你每次都通过循环检查,但为什么'v'会改变? “v”是你想要加入的总和吗? – 2014-10-10 00:15:01

回答

2

我觉得你的循环应该是

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

的问题是要添加v总结,而不是所增加的数量for循环,q

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

另外,你可以ñ定义所有的整数在同一行,像这样:

int v, q, sum=0; 

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

q <= v;