如果在 for 循环的第一个循环中跳过语句
If statement being skipped in first cycle of for loop
#include <iostream>
using namespace std;
int main()
{
int a[3],b[3];
int sum,sum2;
int A_poeni = 0, S_poeni = 0;
int k,l;
for (int i=0; i<3; i++)
{
sum=0;
cin >> a[i] >> b[i];
k = a[i];
l = b[i];
//cout << "a[i]: " << a[i] << endl;
//cout << "b[i]: " << b[i] << endl;
//cout << "k: " << k << "l: " << l << endl;
while(k>0)
{
sum += k % 10;
k /= 10;
}
sum2=0;
while(l>0)
{
sum2 += l % 10;
l /= 10;
}
//cout << "sum: " << sum << endl;
//cout << "sum2: " << sum2 << endl;
if (a[i] % sum == 0)
{
cout << "Stefan: " << S_poeni << " " << "Ana: " << A_poeni << endl;
S_poeni += 2;
A_poeni -= 1;
}
else
{
continue;
}
if (b[i] % sum == 0)
{
cout << "Stefan: " << S_poeni << " " << "Ana: " << A_poeni << endl;
S_poeni -= 1;
A_poeni += 2;
}
else{
continue;
}
}
cout << S_poeni << " " << A_poeni << endl;
return 0;
}
我必须制作一个执行以下操作的程序:
输入数字 x y (100 <=x , y<= 999),其中 x 是 Stefan 的数量,y 是 Ana 的数量。你必须检查他们输入的数字,当你把它除以数字的总和时,得到0,如果是这样,那么x/y得到2分,另一个玩家得到-1分。如果数字不符合该数字,则不会给任何人任何分数。
例如,如果数字是 110,1+1+0 = 2,110%2 = 0,Stefan 得到 2 分,安娜得到 -1.如果数字是 890,8+9+0 = 17,890%17!=0,没有人得到分数。
例如:
101 114
133 360
113 243
输入和输出应为:
-1 5
Ana
我的问题是我在 for 循环中的"if"语句以某种方式被忽略了(仅限第一个循环)。我做了几个测试,但我不知道为什么...
感谢Zifre,错误是:
if (b[i] % sum == 0)
应该是
if (b[i] % sum2 == 0)
相关文章:
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 如果 else 语句不断循环
- do while 循环中的 if 语句以 yes 或 no 结尾
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- 如果语句不会在 do - while 循环中运行
- 有没有办法在循环中的条件至少满足一次时运行语句?
- 什么可以用来替换代码中的循环和 if 语句?
- C++ 访问 if 语句(如果它们在 for 循环中)
- for 循环后的分号是什么意思?为什么第一个循环语句中有 j++
- 这段代码如何在没有任何循环语句或'goto'或递归的情况下循环?
- 终端不阅读循环语句
- 我的值不断增加,而不是在循环语句中重置
- 此 for 循环语句的正确语法
- 神秘的 for 循环语句
- do 循环语句导致无限循环
- 嵌套循环语句结果不正确
- 在 FOR 循环语句的条件部分中使用声明
- 构造长循环语句是一种好的做法吗
- 在条件C++循环语句中向SQLite3表中插入条目
- 循环语句警告的冒泡排序算法