关于c++ if 的运行顺序
  • 板块学术版
  • 楼主zjpwdyf
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/12/2 15:49
  • 上次更新2023/12/2 16:59:56
查看原帖
关于c++ if 的运行顺序
807826
zjpwdyf楼主2023/12/2 15:49

在写一道题时,我代码中的 findc() 函数有如下片段:

if(!vis[y])
	if(findc(y)) return 1;
else{
	int tid = x;
	while(1){
		inc[tid] = 1;
		cv[++cn] = tid, cw[cn] = w[tid];
		tid = fa[tid];
		if(tid == x) break;
	}
	return 1;
}

结果会 RE。

然而改成这样:

if(!vis[y]){
	if(findc(y)) return 1;
}
else{
	int tid = x;
	while(1){
		inc[tid] = 1;
		cv[++cn] = tid, cw[cn] = w[tid];
		tid = fa[tid];
		if(tid == x) break;
	}
	return 1;
}

就 AC 了。

求大佬解释这两段代码运行顺序的不同 QwQ。

2023/12/2 15:49
加载中...