社区讨论

一个随机生成数据的代码,为什么会异常退出(文件打开是正常的)

学术版参与者 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 条回复,欢迎继续交流。

正在加载回复...