关于getchar的神奇问题,Z和getchar到底有何渊源?
查看原帖
关于getchar的神奇问题,Z和getchar到底有何渊源?
86624
洛谷Onlinejudge楼主2020/8/8 19:12

主程序代码:

int N,M,X,Y,Z;
int main(void){
	N=Read();M=Read();
	for(register int i=1;i<=N;i++){
		char C;
		cin>>C;//这里是不同之处
		A[i]=C-'0';
	}
	Do.Tree_Build(1,1,N);
	for(register int i=1;i<=M;i++){
		Z=Read(),X=Read(),Y=Read();
		if(Z==0)Do.AddSeg(1,X,Y);
		if(Z==1)printf("%d\n",Do.SumSeg(1,X,Y));
	}
	return 0;
}

但如果我写成:

int N,M,X,Y,Z;
int main(void){
	N=Read();M=Read();
	for(register int i=1;i<=N;i++){
		char C=getchar();//这里是不同之处
		A[i]=C-'0';
	}
	Do.Tree_Build(1,1,N);
	for(register int i=1;i<=M;i++){
		Z=Read(),X=Read(),Y=Read();
		if(Z==0)Do.AddSeg(1,X,Y);
		if(Z==1)printf("%d\n",Do.SumSeg(1,X,Y));
	}
	return 0;
}

Z就会变成一些奇怪的值,Z和getchar到底有何渊源?

2020/8/8 19:12
加载中...