请问为什么我第二个检查点会re
  • 板块P5587 打字练习
  • 楼主656gmg
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/5 21:54
  • 上次更新2024/1/6 09:29:24
查看原帖
请问为什么我第二个检查点会re
1189066
656gmg楼主2024/1/5 21:54
#include<stdio.h>
#include<string.h>
#include<math.h>
int min(int a,int b)
{
	return a<b?a:b; 
}
int main()
{
	char fanwen[2000][500]={0};
	char shuru[2000][500]={0};
	double t;
	double count=0.0;
	int con1=0,con2=0;//con1为范文的行数con2为输入的行数 
	//逐位比较,包括标点空格等 ,但不包括回车 
	while(1)
	//我想在读入的时候直接进行对于退格键“<”进行处理的话 
	{
		char tmp[10000]={0};
		char t2[10000]={0};
		gets(tmp);
		if(tmp[0] == 'E' && tmp[1] == 'O' && tmp[2]=='F')
			break;
		int len = strlen(tmp);
		for(int i=0;i<len;i++)
		{
			
			if(tmp[i]=='<' && i!=0)
			{
				tmp[i]='$';
				for(int j=i-1;j>=0;j--)
				{
					if(tmp[j]!='$')//但愿不会有这么奇葩的符号出现 
					{
						tmp[j]='$';
						break;
					}
				}
			}
		 } 
		 int c=0;
		 for(int i=0;i<len;i++)
		 {
		 	if(tmp[i]!='$')
		 	{
		 		t2[c++]=tmp[i];
			 }
		 }
		 
		strcpy(fanwen[con1++],t2);
	}
	while(1)
	//我想在读入的时候直接进行对于退格键“<”进行处理的话 
	{
		char tmp[10000]={0};
		char t2[10000]={0};
		gets(tmp);
		if(tmp[0] == 'E' && tmp[1] == 'O' && tmp[2]=='F')
			break;
		int len = strlen(tmp);
		for(int i=0;i<len;i++)
		{
			
			if(tmp[i]=='<' && i!=0)
			{
				tmp[i]='$';
				for(int j=i-1;j>=0;j--)
				{
					if(tmp[j]!='$')
					{
						tmp[j]='$';
						break;
					}
				}
			}
		 } 
		 int c=0;
		 for(int i=0;i<len;i++)
		 {
		 	if(tmp[i]!='$')
		 	{
		 		t2[c++]=tmp[i];
			 }
		 }
		 
		strcpy(shuru[con2++],t2);
	}
	scanf("%lf",&t);
	for(int i=0;i<min(con1,con2);i++)
	{
		int len1 = strlen(fanwen[i]);
		int len2 = strlen(shuru[i]);
		for(int j=0;j<min(len1,len2);j++)
		{
			if(shuru[i][j]==fanwen[i][j])
			{
				count++;
			}
		}
		//printf("%d\n",count);
	}	
	int kpm=round( count/(t/60.0) );
	
	printf("%d",kpm);
	
	
	return 0;
}
2024/1/5 21:54
加载中...