作业:测试所有相等行的正方形

问题描述 投票:3回答:2

因此,对于当前的家庭作业,我必须确定一个正方形中所有行的总和是否相等,如果它们都相等,则该正方形为“ Awesome”,否则为“ Not Awesome”。在此程序中,第一个输入是要求解的平方数,然后为每个平方输入将要具有的行数,然后输入一系列整数来表示“平方”中的每个数字。以下是我经过尝试和测试的代码,对我来说,我似乎无法提出一个破坏它的测试用例,但是当我上传它进行评分时,评分机器人会失败。非常感谢您的帮助。

起初,我认为这是一个溢出问题,所以我将sum和temp变量更改为long long,但没有任何效果。

输入示例:

3

4

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

3

1 2 3

2 3 1

3 2 7

5

1 2 3 4 5

1 1 1 1 11

2 2 2 2 7

3 3 3 3 3

4 4 4 4 -1

输出为:

真棒

不很棒

真棒

#include <iostream>

using namespace std;

int main()
{
    int numTests, numRows, i, col, row, firstRun;
    long long sum, prevSum, temp;

    cin >> numTests;
    for (i = 0; i < numTests; i++)
    {
        firstRun = 1;
        cin >> numRows;
        for (row = 0; row < numRows; row++)
        {
            sum = 0;
            for (col = 0; col < numRows; col++)
            {
                cin >> temp;
                sum += temp;
            }
            if (!firstRun && prevSum != sum)
                break;
            firstRun = 0;
            prevSum = sum;
        }
        if (row != numRows)
            cout << "Not ";
        cout << "Awesome" << endl;
    }
    return 0;
}
c++
2个回答
3
投票

获得答案时,您正在打破循环。但是输入可能无法完成。

1
4
1 2 3 4
1 2 3 1
1 2 3 4
1 2 3 4

这里,输入第二行后,循环将中断。因此,后续数字处理不当并导致WA。考虑情况

2
3
1 2 3 
1 2 1
3 2 1
3
3 1 1
1 1 3
1 3 1

您的程序将打印

Not Awesome
Not Awesome

0
投票

您不应该初始化“ temp”吗?

© www.soinside.com 2019 - 2024. All rights reserved.