因此,对于当前的家庭作业,我必须确定一个正方形中所有行的总和是否相等,如果它们都相等,则该正方形为“ 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;
}
获得答案时,您正在打破循环。但是输入可能无法完成。
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
您不应该初始化“ temp”吗?