c++ - 作业: Testing square with all equal rows

标签 c++

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

一开始我以为是溢出问题,所以把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;
}

最佳答案

当你得到答案时,你就打破了循环。但输入可能还没有完成。

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

关于c++ - 作业: Testing square with all equal rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58129943/

相关文章:

c++ - 用flex和bison解析压缩文件?

c++ - 使用 StringCchPrintf 从子字符串构建字符串

C++重载函数匹配

c++ - SIMD 延迟吞吐量

c++ - 将我的应用程序与内核连接的最佳方式是什么?

c++ - C++ 程序员应该了解哪些常见的未定义行为?

c++ - 构建wxWidgets Hello world

c++ - 如何获取内核对象的安全描述符?

c++ - 如何在不循环的情况下使用 getline 读取文件?

c++ - 防止 Visual Studio C++ 合并相同的函数