0
#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;
}

我必须制作一个执行以下操作的程序:

您输入数字 xy (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”语句被某种方式忽略了(仅限第一个循环)。我做了几次测试,我不知道为什么...

4

1 回答 1

0

感谢 Zifre,错误是:

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

应该

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

于 2013-11-16T12:14:28.457 回答