能请大佬看看吗,怪怪的
查看原帖
能请大佬看看吗,怪怪的
434244
abcd231楼主2021/3/19 11:01
#include<stdio.h>
int main()
{
	char ch;
	int result1=1,result2=1;
	while(1)
	{
		ch=getchar();
		if(ch=='\n'||ch=='\r')
		break;
		else
		result1=result1*(ch-'A'+1);
	}
	result1%=47; 
	while(1)
	{
		ch=getchar();
		//printf("%c",ch);
		if(ch=='\n'||ch=='\r')
		break;
		else
		result2=result2*(ch-'A'+1);
	}
	
	result2%=47;
	if(result2==result1)
	printf("GO");
	else
	printf("STAY");
	return 0;
 } 

这道题,我的代码,一直是60分,上不去,看了几遍,也不知道哪里错了。然后,脑子一抽觉得在第一个循环过后应该吸收回车符,就加上了一个getchar().但是后面怎么想怎么不对。应该了吸收了回车才能跳出才对啊,于是在本机上测试了一下,发现确实如此,AC的代码如下

#include<stdio.h>
int main()
{
	char ch;
	int result1=1,result2=1;
	while(1)
	{
		ch=getchar();
		if(ch=='\n'||ch=='\r')
		break;
		else
		result1=result1*(ch-'A'+1);
	}
	result1%=47;
	getchar();//吸收‘\n’符。。。。。。。。。。。。。。。。。。 
	while(1)
	{
		ch=getchar();
		//printf("%c",ch);
		if(ch=='\n'||ch=='\r')
		break;
		else
		result2=result2*(ch-'A'+1);
	}
	
	result2%=47;
	if(result2==result1)
	printf("GO");
	else
	printf("STAY");
	return 0;
 } 

试过这段代码,发现,他连题目提供的两个例子都算错了,但是为什么会AC呢。。

2021/3/19 11:01
加载中...