#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int a[n][n];
int t = 0;
int c;
int hang,lie = 0;
bool isZero = true;
while(t < n*n) {
cin >> c;
t+=c;
for(int i = 0; i < c; i++) {
if(lie == n && hang < n) {
hang++;
lie = 0;
}
a[hang][lie++] = (isZero==true?0:1);
}
isZero = !isZero;
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout << a[i][j];
}
cout << endl;
}
return 0;
}
这是本人的代码 然后提交上去选择c++20 全部re,我也不清楚问题在哪 使用codeblocks能得到正确答案,而当我提交的时候加上了o2优化的时候,却奇迹般的全部wa了。我实在不懂 ,请问有人帮忙解决吗,感激不尽
变量hang没有初始化为0啊
如果hang没有初始化,那么
if(lie == n && hang < n) {
hang++;
显然就有问题了。hang默认值可能不是0,二是一个较大的负数随机数。自然全错了。O2优化是不是会给变量默认初始值为0,所以就OK呢
11行修改一下
int hang = 0,lie = 0;