如果在for循环的第一个循环中跳过语句

时间:2013-10-20 14:57:06

标签: c++ loops if-statement 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分,Ana获得-1。如果数字是890,8 + 9 + 0 = 17,890%17! = 0没有人得分。

示例是:

101 114
133 360
113 243

输入和输出应该是:

-1 5
Ana

我的问题是for循环中的“if”语句被忽略了(仅限第一个循环)。我做了几次测试,但我找不到原因......

1 个答案:

答案 0 :(得分:0)

感谢Zifre,错误是:

if (b[i] % sum == 0)

应该是

if (b[i] % sum2 == 0)