社区讨论
一个随机生成数据的代码,为什么会异常退出(文件打开是正常的)
学术版参与者 4已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mlitqsya
- 此快照首次捕获于
- 2026/02/12 10:13 上周
- 此快照最后确认于
- 2026/02/14 15:20 5 天前
CPP
#define _CRT_SECURE_NO_WARNINGS//人机 Visual Studio 必须定义这个,否则用 freopen 会 CE
#include <iostream>
using namespace std;
bool a[1001][1001];
void dfs(int i, int j) {
if (a[i][j]) return;
a[i][j] = 1;
if (i > 1 && rand() < 30000) dfs(i - 1, j);
if (j > 1 && rand() < 30000) dfs(i, j - 1);
if (i < 1000 && rand() < 30000) dfs(i + 1, j);
if (j < 1000 && rand() < 30000) dfs(i, j + 1);
}
int main() {
ios::sync_with_stdio(0);cin.tie(0);
int i, j;
freopen("C:\\Users\\zhail\\Desktop\\input.txt", "w", stdout);
srand(time(0));
dfs(1, 1000);
dfs(1000, 1);
a[1][1] = a[1000][1000] = 0;
cout << "1000 1000";
for (i = 1; i <= 1000; i++) for (j = 1; j <= 1000; j++) cout <<(j==1?'\n':' ') << (int)!a[i][j];
return 0;
}
用来生成一个 1000*1000 的 01 矩阵,所有 0 要么和右上角连通要么和左下角连通,且右上角和左下角是 0,左上角和右下角是 1。(因为输出的是
!a[i][j] 不是 a[i][j])但实际执行完后文件是空的,并且返回
0xc00000fd。回复
共 14 条回复,欢迎继续交流。
正在加载回复...