非常迷惑
查看原帖
非常迷惑
315191
P31pr楼主2021/2/20 17:19

一下两份代码有且仅有输入方式上的不同(一个cin一个scanf),然而一个AC一个全WA,请问这是为什么qwq

cin

#include<cstdio>
#include<iostream>

using namespace std;

const int MOD=10000;

int cal(int x,char pre)
{
	int y;
	cin>>y;
	char op;
	if(!(cin>>op))
	{
		if(pre=='+')
			return (x+y)%MOD;
		else
			return x*y%MOD;
	}
	if(pre=='*')
		return cal(x*y%MOD,op);
	else
	{
		if(op=='+')
			return cal((x+y)%MOD,op);
		else return x+cal(y,op)%MOD;
	}
}

int main()
{
	printf("%d\n",cal(0,'+')%MOD);
	return 0;
}

scanf

#include<cstdio>

const int MOD=10000;

int cal(int x,char pre)
{
	int y;
	scanf("%d",&y);
	char op;
	if(scanf("%c",&op)==EOF)
	{
		if(pre=='+')
			return (x+y)%MOD;
		else
			return x*y%MOD;
	}
	if(pre=='*')
		return cal(x*y%MOD,op);
	else
	{
		if(op=='+')
			return cal((x+y)%MOD,op);
		else return x+cal(y,op)%MOD;
	}
}

int main()
{
	printf("%d\n",cal(0,'+')%MOD);
	return 0;
}
2021/2/20 17:19
加载中...