关于输出void函数名与一个整型变量之和的问题
查看原帖
关于输出void函数名与一个整型变量之和的问题
293810
serene_analysis楼主2020/5/12 22:18

这是我在写fhq-treap(即无旋treap)时产生的错误。

出错原因是我写了相近的一个变量名和一个void函数名。

对于这个错误,我并没有任何头绪。

我已在网络上进行过简单搜索,并没有找到有用材料。

环境:Dev-C++ 5.11

最近没有任何软件更新。

使用头文件:

#include<algorithm>
#include<cstdio>

下面两个片段代码均能在前文提及环境下编译通过

(下文中“整型”均指32位整数)

其中关于del和delt的定义:

int delt;//全局

void del(int val){
	split(root,val,x,z);
	split(x,val-1,x,y);
	y=merge(fhq[y].l,fhq[y].r);
	root=merge(x,merge(y,z));
}

关于delt:其中的x,y,z,root均为整形变量,fhq为一个结构体数组。

struct treap{
	int l;
	int r;
	int val;
	int key;
	int size;
}fhq[200005];//其中变量全为整型

在此前提下:

错误代码片段:

        else if(ch[0]=='F'){
            if(fhq[root].size<in)puts("-1");
            else printf("%d\n",fhq[getnum(root,fhq[root].size-in+1)].val+del);
        }

正确代码片段:

        else if(ch[0]=='F'){
            if(fhq[root].size<in)puts("-1");
            else printf("%d\n",fhq[getnum(root,fhq[root].size-in+1)].val+delt);
        }

其中in为整型变量。

对于样例的输出:

错误代码:

4200836
4200856
-1
2

正确代码(与样例一致):

10
20
-1
2

应用错误代码片段,我得到的结果是全WA

应用正确代码片段,我得到的结果是AC

我的问题是:为什么可以输出一个void函数名与一个整型变量之和,而本地和洛谷评测机上都不会CE?

这就是我的问题,如果有任何疑问,我可以在我能力范围内提供任何帮助。

2020/5/12 22:18
加载中...