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